表单验证&&常用正则


  1. ;(function(ELF){
  2. ELF = ELF || (window.ELF = {});
  3. var reg = {},
  4. pattern = {
  5. /*用户名校验*/
  6. 'userName' : '^[a-zA-Z0-9_-]{4,16}$',
  7. /*姓名校验*/
  8. 'name' : '^[A-Za-z\.\u4e00-\u9fa5]+$',
  9. /*手机号校验*/
  10. 'MPhone' : '^1[34578]\\d{9}$',
  11. /*邮编校验*/
  12. 'zipCode' : '^\\d{6}$',
  13. /*邮箱校验*/
  14. 'mail' : '^([A-Za-z0-9_\\-\\.])+@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4})$',
  15. /*身份证简单校验 15位或者18位*/
  16. 'IDCode' : '^(([0-9]{14})|([0-9]{17}))[0-9X]$'
  17. };
  18. ELF.pattern = pattern;
  19. ELF.reg = reg;
  20. //验证用户名:数字、字母、- {4-16}
  21. reg.testUserName = function(arg){
  22. arg = arg || '';
  23. if(typeof arg !== "string") {
  24. throw new TypeError('"arg" is not string');
  25. }
  26. return /^[a-zA-Z0-9_-]{4,16}$/.test(arg);
  27. }
  28. //验证姓名: 字母或者中文
  29. reg.testName = function( arg ){
  30. arg = arg || '';
  31. if(typeof arg !== "string") {
  32. throw new TypeError('"arg" is not string');
  33. }
  34. return /^[A-Za-z\.\u4e00-\u9fa5]+$/.test( arg );
  35. }
  36. //验证手机 :1 [3、4、5、7、8] 11位数字
  37. reg.testMPhone = function ( arg ){
  38. arg = arg || '';
  39. if(typeof arg !== "string") {
  40. throw new TypeError('"arg" is not string');
  41. }
  42. return /^1[34578]\d{9}$/.test( arg );
  43. }
  44. //验证邮编 : 6位数字
  45. reg.testZipCode = function(arg){
  46. arg = arg || '';
  47. if(typeof arg !== "string") {
  48. throw new TypeError('"arg" is not string');
  49. }
  50. return /^\d{6}$/.test( arg );
  51. }
  52. //验证邮箱: [数字、字母、_、- ]@[数字、字母、_、- 、.].[字母{2-4}]
  53. reg.testMail = function(arg){
  54. arg = arg || '';
  55. if(typeof arg !== "string") {
  56. throw new TypeError('"arg" is not string');
  57. }
  58. return /^([A-Za-z0-9_\-\.])+@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(arg);
  59. }
  60. //匹配身份证:严格匹配
  61. reg.testIDCode = function( sId ) {
  62. sId = sId || '';
  63. if(typeof sId !== "string") {
  64. throw new TypeError('"sId" is not string');
  65. }
  66. var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}
  67. var iSum = 0;
  68. var info = "";
  69. var pass = true;
  70. if(!/^\d{17}(\d|x)$/i.test(sId)){
  71. info = "你输入的身份证长度或格式错误";
  72. console.log( info );
  73. return false;
  74. }
  75. sId = sId.replace(/x$/i, "a");
  76. if(aCity[parseInt(sId.substr(0, 2))] == null){
  77. info = "你的身份证地区非法";
  78. console.log( info );
  79. return false;
  80. }
  81. sBirthday = sId.substr(6, 4) + "-" + Number(sId.substr(10, 2)) + "-" + Number(sId.substr(12, 2));
  82. var d = new Date(sBirthday.replace(/-/g, "/"));
  83. if(sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate())){
  84. info = "身份证上的出生日期非法";
  85. console.log( info );
  86. return false;
  87. }
  88. for(var i = 17; i >= 0; i--){
  89. iSum += (Math.pow(2, i) % 11) * parseInt(sId.charAt(17 - i), 11);
  90. }
  91. if(iSum % 11 != 1){
  92. info = "你输入的身份证号非法";
  93. console.log( info );
  94. return false;
  95. }
  96. console.log(info);
  97. //aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女");//此次还可以判断出输入的身份证号的人性别
  98. return pass;
  99. }
  100. })();

常用表单验证&&常用正则的更多相关文章

  1. 一个PHP常用表单验证类(基于正则)

    一个基于正则表达式的PHP常用表单验证类,作者:欣然随风.这个表单判断类的功能有:验证是否为指定长度的字母/数字组合.验证是否为指定长度汉字.身 份证号码验证.是否是指定长度的数字.验证邮件地址.电话 ...

  2. php常用表单验证类用法实例

    <?php /** * 页面作用:常用表单验证类 * 作 者:欣然随风 * QQ:276624915 */ class class_post { //验证是否为指定长度的字母/数字组合 func ...

  3. iview表单验证之正则验证、函数验证

    iview表单验证之正则 正则验证: 代码: loginRules: { stringLength: [ { required: true, message: '该字段不能为空', trigger: ...

  4. JavaScript常用表单验证正则表达式(身份证、电话号码、邮编、日期、IP等)

    身份证正则表达式 //身份证正则表达式(15位)isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;//身份证正则表达式 ...

  5. 前端表单验证常用的15个JS正则表达式

    在表单验证中,使用正则表达式来验证正确与否是一个很频繁的操作,本文收集整理了15个常用的javaScript正则表达式,其中包括用户名.密码强度.整数.数字.电子邮件地址(Email).手机号码.身份 ...

  6. 表单验证常用的JS正则表达式

    在表单验证中,使用正则表达式来验证正确与否是一个很频繁的操作,本文收集整理了15个常用的javaScript正则表达式,其中包括用户名.密码强度.整数.数字.电子邮件地址(Email).手机号码.身份 ...

  7. JavaScript---网络编程(12)--DHTML技术演示(5)-form表单验证技术(正则)

    这里不进行很复杂的后台验证以及JavaScript的正则表达式,只是简单的介绍下这个技术,简单的后台接收与跳转,大概了解怎么验证的就可以.具体的技术,我后面还会继续写博客的.本人也还在学习中. 表单验 ...

  8. js实现表单验证 常用JS表单验证

    CSS代码 @charset "gb2312"; /* CSS Document */ body,dl,dt,dd,div,form {padding:;margin:;} #he ...

  9. 关于JS中的常用表单验证+正则表达式

    一.非空验证 trim:去空格(去掉前后的空格),任何字符串都可以用这个方法.写法为:if(v.trim().length==0),表示如果去掉空格后的字符串的长度为0. <body> & ...

随机推荐

  1. bzoj1150 [CTSC2007]数据备份Backup 双向链表+堆

    [CTSC2007]数据备份Backup Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2727  Solved: 1099[Submit][Stat ...

  2. struts 中的创建Action的三种方法

    1.对于直接创建类,不实现接口和继承任何的类 例如创建一个helloAction package cn.lonecloud.control; import com.opensymphony.xwork ...

  3. Batch Normalization&Dropout浅析

    一. Batch Normalization 对于深度神经网络,训练起来有时很难拟合,可以使用更先进的优化算法,例如:SGD+momentum.RMSProp.Adam等算法.另一种策略则是高改变网络 ...

  4. NTP 时间同步协议

    http://www.faqs.org/rfcs/rfc1305.html port:123

  5. static_cast, dynamic_cast, const_cast 类型转换如何使用?

    static_cast 用法:static_cast < type-id > ( expression ) 说明:该运算符把expression转换为type-id类型,但没有运行时类型检 ...

  6. CodeForces-748C

    这题就是确定一个点,然后去找能够实现最短距离的点且距离最远的点,因为题目要求点最少.在查找时,如果从最后的点开始枚举,找到的第一个满足距离最短的点一定是最远点,但是查找的复杂度是O(n),共有n次查找 ...

  7. CodeForces-749A

    要求组成n的素数最多,根据n的奇偶讨论:如果n是偶数,直接打印n/2个数字'2'就可以了:如果n是基数,则先打印一个'3',再打印(n-3)/2个数字'2'就可以了. AC代码: #include&l ...

  8. ORACLE关于段的HEADER_BLOCK的一点浅析

    在学习段(segment).区间(extent)时,对段的HEADER_BLOCK有一些疑问,本文记录一下探究的实验过程以及相关总结,,如有不对的地方,敬请指出.以SCOTT.EMP表为例(下面测试环 ...

  9. linux shell中获取mongodb最大连接数、内存使用情况等

    前两天接到了一个新的需求,需要在linux shell脚本中监控到mongodb最大连接数.内存使用情况等. 但是我对于linux shel很不了解,只是会一些简单常用的linux的操作而已,只要一顿 ...

  10. hi3531芯片的标识寄存器

    芯片的标识寄存器 0xee0.0xee4.0xee8.0xeec(基址是0x2005_0000) 系统控制器提供了芯片标识(ID)寄存器SC_SYSID.这个标识寄存器是一个概念上 的32bit 的标 ...