常用的正则表达式

正则验证在表单的提交中使用相当频繁,在此整理了一下常用的表达式。

(1)用户名 : 2-14个英文或2-7个汉字(数字、下划线)

var regName = /^([\u4e00-\u9fa5\d_]{2,7})$|^([a-zA-Z0-9_]{2,14})$/;

(2)手机号: 中国大陆手机号

var regPhone = /^1[356789][\d]{9}$/;
var regTel = /^\d{3}-\d{8}|\d{4}-\{7,8}$/    //固定电话

(3)密码: 只能包含字母、数字和下划线,长度6~14位

var regPwd1 = /^[\w]{6,14}$/;   //随意组合
var regPwd2 = /^[a-zA-Z]\w{5,13}$/;   //必须以字母开头
var regPwd3 = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,14}$/;   //必须包含大小写字母和数字-->强密码
var regPwd4 = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*?]).{6,14}$  //必须包含大小写字母和数字和特殊符号

关于强密码,涉及到正则的分组和前瞻。一个()表示一个分组,regPwd3中包含3个组。详细的分组介绍推荐 ☞ 去看看
关于前瞻,我们都知道前瞻分为 正向前瞻 和 负向前瞻,通俗的解释一下什么是“前” :正则表达式从文本的头部向尾部开始解析,即文本尾部方向,称为“前”,而前瞻就是在正则表达式匹配到规则的时候向前检查是否符合断言,详细的前瞻介绍推荐 ☞ 去看看regPwd3(?=.*\d)表示必须包含数字,数字的前面可以有或没有任意字符(“.”代表任意字符,“*”代表0个或多个),同理的(?=.*[a-z])表示至少有一个小写字母。

(4)邮箱: 可包含".-_",但不能以特殊符号开始或结束

var regEmail = /^([0-9A-Za-z]+[-_\.]*[0-9A-Za-z]+)@([0-9A-Za-z]+\.[A-Za-z]{2,3}(\.[a-zA-Z]{2,3})?)$/;

由于不能以特殊符号开始或结束,所以[-_\.]*前后的表达式是"+",特殊符号的前后至少要有一个字符,邮箱的后缀由两部分或三部分组成,所以最后的(\.[a-zA-Z]{2,3})?是可选内容,这里的"?"表示范围0-1(即0次或1次)。

(4)年龄: 0-120岁

var regAge = /^((1[0-1]|[1-9])?\d|120)$/

表达式分为120岁和小于120岁,小于120即左边部分,(1[0-1]|[1-9])可有可无,有时又分为100-119岁或10-99岁,无时就只剩"\d"即0-9岁。

(5)QQ号: 5-10位,不以0开头

var regQQ = /^[1-9][0-9]{4,9}$/

(6)身份证: 二代身份证,共18位

var regID = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/

身份证不以0头,前6位为地区代码,7-14为生日信息yyyymmdd(0[1-9])|(1[0-2])保证月份在01-12之间,([0-2][1-9]得到01-29以及|10|20|30|31得到完整的01-31日。15-17位为顺序号,最后一位为检验码,0-9或"X"或"x",即[0-9Xx]

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值