今天在写一些输入验证的时候用到了正则表达式,现在就回顾一下我们常用的正则表达式,对于正则表达式的写法很多种,看个人的习惯了,我的写法也许不是很好,但可以满足基本需求。
1、验证用户名和密码:^[A-Za-z0-9]\w{5,15}$
2、座机电话号码:^[A-Za-z0-9]\w{5,15}$
3、验证手机号码:^[1][3456879]\d{9}$
4、验证身份证号(15位或18位数字):^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$
对于身份证
身份证15位编码规则:dddddd yymmdd xx p
* dddddd:6位地区编码
* yymmdd: 出生年(两位年)月日,如:910215
* xx: 顺序编码,系统产生,无法确定
* p: 性别,奇数为男,偶数为女
*
* 身份证18位编码规则:dddddd yyyymmdd xxx y
* dddddd:6位地区编码
* yyyymmdd: 出生年(四位年)月日,如:19910215
* xxx:顺序编码,系统产生,无法确定,奇数为男,偶数为女
* y: 校验码,该位数值可通过前17位计算获得
*
* 前17位号码加权因子为 Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ]
* 验证位 Y = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ]
* 如果验证码恰好是10,为了保证身份证是十八位,那么第十八位将用X来代替
* 校验位计算公式:Y_P = mod( ∑(Ai×Wi),11 )
* i为身份证号码1...17 位; Y_P为校验码Y所在校验码数组位置
*/
5、验证Email地址:^([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+(\.[a-zA-Z]{2,3})+$;
6、只能输入由数字和26个英文字母组成的字符串:("^[A-Za-z0-9]+$") ;
7、整数或者小数:^[0-9][0-9.]+[0-9]+$
8、只能输入数字^\d+$
9、只能输入n位的数字:^\d{n}$
10、只能输入至少n位的数字:"^\\d{n,}$"。
11、只能输入m~n位的数字:"^\\d{m,n}$"。
12、只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
13、只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。
14、只能输入有1~3位小数的正实数:"^[0-9]+(\.[0-9]{1,3})?$"。
15、只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"。