下面都是一些比较常用简单的验证,像那些特殊的复杂的情况这里不进行考虑

1、验证电话号码或者手机号码

1
2
3
4
5
6
7
8
9
10
/**
 * 验证电话号码(手机号码+电话号码)
 * @param obj
 * @returns {Boolean}
 */
function checkPhoneNum(obj){
    if(/^((\d{3}-\d{8}|\d{4}-\d{7,8})|(1[3|5|7|8][0-9]{9}))$/.test(obj)){
        return true;
    }
}

2、验证地址(中文、英文、数字)

1
2
3
4
5
6
7
8
9
/**
 * 验证企业地址(中文、英文、数字)
 * @param obj
 */
function checkAddress(obj){
    if(/^[\u4e00-\u9fa5a-zA-Z0-9]+$/.test(obj)){
        return true;
    }
}

3、验证用户名

1
2
3
4
5
6
7
8
9
10
/**
 * 验证用户名输入格式
 * @param obj
 * @returns {Boolean}
 */
function checkUserName(obj){
    if(/^[a-zA-Z0-9_-]{3,16}$/.test(obj)){
        return true;
    }
}

4、验证密码

1
2
3
4
5
6
7
8
9
10
/**
 * 验证密码输入格式
 * @param obj
 * @returns {Boolean}
 */
function verifyPassword(obj){
    if(/^[a-z0-9_-]{5,18}$/.test(obj)){
        return true;
    }
}

5、验证企业税号

1
2
3
4
5
6
7
8
9
10
11
/**
 * 验证税号
 * 15或者17或者18或者20位字母、数字组成
 * @param obj
 * @returns {Boolean}
 */
function checkTax(obj){
    if(/^[A-Z0-9]{15}$|^[A-Z0-9]{17}$|^[A-Z0-9]{18}$|^[A-Z0-9]{20}$/.test(obj)){
        return true;
    }
}

6、验证金额

1
2
3
4
5
6
7
8
9
10
/**
 * 验证金额(可验证 大于等于零,小于等于99999999.99 的数字)
 * @param obj
 * @returns {Boolean}
 */
function checkMoney(obj){
    if(/^([1-9][\d]{0,7}|0)(\.[\d]{1,2})?$/.test(obj)){
        return true;
    }
}

7、验证身份证号,包括大陆身份证号,和港澳台身份证号,当然这里都只是简单的规范一下,实际的像香港的身份证号最后的括号里面的校验位都是需要根据前面的

数字依据一定的加权算法算出来进行校验的,这里没有涉及到。如果需要特别精确则可以去研究一番。

1
2
3
4
5
6
7
8
9
10
11
/**
 * 验证大陆的身份证号
 * 验证身份证号
 * 身份证号码为15位或18位的全数字,或者18位时前17位是数字,最后一位是校验位,可能是数字或字符X或x
 * @param obj
 */
function checkIdCard(obj){
    if(/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(obj)){
        return true;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/**
 * 验证港澳台身份证
 * @param obj
 */
function checkGATIdCard(obj){
    var reg1 = /^[A-Z]{1,2}[0-9]{6}[\(|\(]?[0-9A-Z][\)|\)]?$/;//香港格式1 (香港身份证号码结构:XYabcdef(z))
    var reg2 = /^[A-Z][0-9]{8,12}$/;//香港格式2 (H60152555)
     
    var reg3 = /^[1|5|7][0-9]{6}[\(|\(]?[0-9A-Z][\)|\)]?$/;//澳门,8位数,不包含出生年月 格式为 xxxxxxx(x) 注:x全为数字,无英文字母 首位数只有1、5、7字开头的
    var reg4 = /^[a-zA-Z][0-9]{9}$/;//台湾:10位字母和数字
     
    if(reg1.test(obj) || reg2.test(obj) || reg3.test(obj) || reg4.test(obj)){
        return true;
    }
}

下面是比较权威的验证身份证号的写法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
/**
 * 身份证15位编码规则:dddddd yymmdd xx p 
 * dddddd:地区码 
 * yymmdd: 出生年月日 
 * xx: 顺序类编码,无法确定 
 * p: 性别,奇数为男,偶数为女
 * <p>
 * 身份证18位编码规则:dddddd yyyymmdd xxx y 
 * dddddd:地区码 
 * yyyymmdd: 出生年月日 
 * xxx:顺序类编码,无法确定,奇数为男,偶数为女 
 * y: 校验码,该位数值可通过前17位计算获得
 * </p><p>
 * 18位号码加权因子为(从右到左) Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2,1 ]
 * 验证位 Y = [ 1, 0, X, 9, 8, 7, 6, 5, 4, 3, 2 ] 
 * 校验位计算公式:Y_P = mod( ∑(Ai×Wi),11 ) 
 * i为身份证号码从右往左数的 2...18 位; Y_P为脚丫校验码所在校验码数组位置
 
 */ 
// 构造函数,变量为15位或者18位的身份证号码
function IdCardValidate(CardNo) {
  this.Valid = false;
  this.ID15 = '';
  this.ID18 = '';
  this.Local = '';
  if (CardNo != null)
    this.SetCardNo(CardNo);
}
// 设置身份证号码,15位或者18位
IdCardValidate.prototype.SetCardNo = function(CardNo) {
  this.ID15 = '';
  this.ID18 = '';
  this.Local = '';
  CardNo = CardNo.replace(" ", "");
  var strCardNo;
  if (CardNo.length == 18) {
    pattern = /^\d{17}(\d|x|X)$/;
    if (pattern.exec(CardNo) == null)
      return;
    strCardNo = CardNo.toUpperCase();
  } else {
    pattern = /^\d{15}$/;
    if (pattern.exec(CardNo) == null)
      return;
    strCardNo = CardNo.substr(0, 6) + '19' + CardNo.substr(6, 9)
    strCardNo += this.GetVCode(strCardNo);
  }
  this.Valid = this.CheckValid(strCardNo);
}
// 校验身份证有效性
IdCardValidate.prototype.IsValid = function() {
  return this.Valid;
}
// 返回生日字符串,格式如下,1981-10-10
IdCardValidate.prototype.GetBirthDate = function() {
  var BirthDate = '';
  if (this.Valid)
    BirthDate = this.GetBirthYear() + '-' + this.GetBirthMonth() + '-'
        + this.GetBirthDay();
  return BirthDate;
}
// 返回生日中的年,格式如下,1981
IdCardValidate.prototype.GetBirthYear = function() {
  var BirthYear = '';
  if (this.Valid)
    BirthYear = this.ID18.substr(6, 4);
  return BirthYear;
}
// 返回生日中的月,格式如下,10
IdCardValidate.prototype.GetBirthMonth = function() {
  var BirthMonth = '';
  if (this.Valid)
    BirthMonth = this.ID18.substr(10, 2);
  if (BirthMonth.charAt(0) == '0')
    BirthMonth = BirthMonth.charAt(1);
  return BirthMonth;
}
// 返回生日中的日,格式如下,10
IdCardValidate.prototype.GetBirthDay = function() {
  var BirthDay = '';
  if (this.Valid)
    BirthDay = this.ID18.substr(12, 2);
  return BirthDay;
}
// 返回性别,1:男,0:女
IdCardValidate.prototype.GetSex = function() {
  var Sex = '';
  if (this.Valid)
    Sex = this.ID18.charAt(16) % 2;
  return Sex;
}
// 返回15位身份证号码
IdCardValidate.prototype.Get15 = function() {
  var ID15 = '';
  if (this.Valid)
    ID15 = this.ID15;
  return ID15;
}
// 返回18位身份证号码
IdCardValidate.prototype.Get18 = function() {
  var ID18 = '';
  if (this.Valid)
    ID18 = this.ID18;
  return ID18;
}
// 返回所在省,例如:上海市、浙江省
IdCardValidate.prototype.GetLocal = function() {
  var Local = '';
  if (this.Valid)
    Local = this.Local;
  return Local;
}
//获取身份证号码为18位时最后的验证位
IdCardValidate.prototype.GetVCode = function(CardNo17) {
  var Wi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
  var Ai = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
  var cardNoSum = 0;
  for (var i = 0; i < CardNo17.length; i++)
    cardNoSum += CardNo17.charAt(i) * Wi[i];
  var seq = cardNoSum % 11;
  return Ai[seq];
}
 
IdCardValidate.prototype.CheckValid = function(CardNo18) {
  if (this.GetVCode(CardNo18.substr(0, 17)) != CardNo18.charAt(17))
    return false;
  if (!this.IsDate(CardNo18.substr(6, 8)))
    return false;
  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 : "国外"
  };
  if (aCity[parseInt(CardNo18.substr(0, 2))] == null)
    return false;
  this.ID18 = CardNo18;
  this.ID15 = CardNo18.substr(0, 6) + CardNo18.substr(8, 9);
  this.Local = aCity[parseInt(CardNo18.substr(0, 2))];
  return true;
}
//验证18位数身份证号码中的生日是否是有效生日
IdCardValidate.prototype.IsDate = function(strDate) {
  var r = strDate.match(/^(\d{1,4})(\d{1,2})(\d{1,2})$/);
  if (r == null)
    return false;
  var d = new Date(r[1], r[2] - 1, r[3]);
  return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[2] && d
      .getDate() == r[3]);
}</p>

把上面的代码放到一个js文件中,然后在(jsp)页面中引入该js文件,再调用即可

1
2
3
4
5
var checkIdCard = new IdCardValidate(id_card);
if(!checkIdCard.IsValid()){
    alert('您输入的身份证格式不正确!');
    return;
}

以上仅作参考。。。。

jQuery进行简单验证的正则表达式的更多相关文章

  1. jquery validation 简单验证手机号码

    js代码 // 手机号码验证 jQuery.validator.addMethod("isMobile", function(value, element) { var lengt ...

  2. jQuery form插件的使用--用 formData 参数校验表单,验证后提交(简单验证).

    Form Plugin API 里提供了很多有用的方法可以让你轻松的处理表单里的数据和表单的提交过程. 测试环境:部署到Tomcat中的web项目. 一.引入依赖js <script src=& ...

  3. python_way day17 jQuery表单验证,事件绑定,插件,文本框架,正则表达式

    python_way day17 1.jQuery表单验证 dom事件绑定 jquery事件绑定 $.each return值的判断 jquery扩展方法 2.前段插件 3.jDango文本框架 4. ...

  4. JQuery数字类型验证正则表达式

    有朋友整了一些关于js与jquery的数字类型验证正则表达式代码,下面我给大家再整理一下. 这里包括了数字验证实现与测试实例了,大家可参考. js验证数字正则表达式 代码如下: //检测是否为数字和小 ...

  5. jquery实现简单瀑布流布局

    jquery实现简单瀑布流布局 是开头都会说的原理 瀑布流布局有两种,一种是固定列,一种是非固定列.在此主要记述第一种的实现. 固定列的特征是:无论页面如何缩放,每行的总列数都一致. 一行4列的瀑布流 ...

  6. 【jquery】Validform,一款不错的 jquery 表单验证插件

    关于 Validform 这是一款很不错的 jquery 表单验证插件,它几乎能够满足任何验证需求,仅仅一行代码就能搞定整站的表单验证. $('form').Validform(); 为什么能如此方便 ...

  7. 【jQuery基础学习】06 jQuery表单验证插件-Validation

    jQuery的基础部分前面都讲完了,那么就看插件了. 关于jQuery表单验证插件-Validation validation特点: 内置验证规则:拥有必填.数字.E-Mail.URL和信用卡号码等1 ...

  8. jquery实践案例--验证电子邮箱

    <input type="email" name="email" id="email" value="" onpa ...

  9. jquery/js实现验证聚焦,失焦

    jquery实现验证聚焦,失焦方法: 我还是喜欢用jquery来实现,不管页面中多少个输入框需要实现聚焦,失焦,都公有,我常用的方法是: 遍历该页面中的input框,获取输入框中的val值,当该输入框 ...

随机推荐

  1. Notepad++中调试用心lua程序

    一.配置: 1.打开Notepad++: 2. 按下F5,或者打开Run->Run… 3. 弹出Run的窗口 3. 这一步是最关键的,将下列语句拷贝粘贴至输入框中:cmd /k Python & ...

  2. yarn的调度器

    三种调度器 1.FIFO Scheduler 把应用按提交的顺序排成一个队列,这是一个先进先出队列,在进行资源分配的时候,先给队列中最头上的应用进行分配资源,等最前面的应用需求满足后再给下一个分配,以 ...

  3. erlang虚拟机代码执行原理

     转载:http://blog.csdn.NET/mycwq/article/details/45653897 erlang是开源的,很多人都研究过源代码.但是,从erlang代码到c代码,这是个不小 ...

  4. ueditor的工具按钮配置

    定制工具栏图标 UEditor 工具栏上的按钮列表可以自定义配置,只需要通过修改配置项就可以实现需求 配置项修改说明 修改配置项的方法: 1. 方法一:修改 ueditor.config.js 里面的 ...

  5. python3数据结构

    列表 list.append(x) 把一个元素添加到列表的结尾,相当于a[len(a):]=[x] list.extend(L) 将一个给定列表中的所有元素都添加到另一个列表中,相当于a[(len): ...

  6. 前端必知的ajax

    简介 异步交互 此篇只介绍部分方法,想了解更多就猛戳这里 1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中. url (Stri ...

  7. c# 操作xml之xmlReader

    xmlReader的名称空间using System.Xml; xmlReader是通过流的方式来读取xml文件的内容 <?xml version="1.0" encodin ...

  8. 子查询 此处该用AND 而不是 WHERE

    条件:有一张账户表,一张订单表. 需求:求出所有role = 2 即客服人员,所有操作成功的订单数量.结果:能查出所有的客服人员名称,以及操作的订单数量(关键点在于,没有操作过订单,则数量显示为0) ...

  9. robotium如何定位控件?

    search类获取当前所有的view,然后根据类型或者文本去筛选,找到view后获取坐标,然后点击坐标.本质都是通过坐标点击.solo.clickonScreen方法,底层调用MotionEvent类 ...

  10. 元素的BFC特性与自适应布局

    一.BFC元素简介与基本表现. BFC全程"Block Formatting Context",中文为"块级格式化上下文".记住一句话:BFC元素特性表现原则就 ...