转自:做前端 » JavaScript常用正则
正则是个很好东西,在工作中运用,能带给我们很多的便利。随便写了点常用的正则。
手机号:
- /^(1[3458][0-9])\d{8}$/
匹配13、14、15、18开头的手机号码,现在虚拟运营商开放了,也有17开头的号码了哦,这个正则匹配的是大多数号码,如要更严格的,继续细化号码段。比如135、139、151等等。
身份证:
- /^[1-8](\d{14})$|^[1-8](\d{16})[0-9xX]$/ /^[1-8](\d{14})$|^[1-8](\d{16})[0-9X]$/i
匹配15或18位的身份证号码。
补充点身份证号码规则的知识,我国的身份证号码是由15位数字或者18位数字字母组成的。99年前身份证是15位,由于千年虫的问题,15位的身份证号码只能为1900年1月1日到1999年12月31日出生的人编号,所以后来改为18位了。
根据GB 11643-1999的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左到右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
需要注意的是校验码会出现字母的情况,校验码是根据前17位数字,按照统一的公式计算出来的,计算出来的值是0-9,就显示数字,如果是10的话,因为最多18位,加上10就变成19位了,所以就改用字母,又因为在罗马数字中的10是X,最终有了18位号码尾号是X的情况。
这里对身份证的规则不详细说,有兴趣的自己去查国标或者百度,一搜一大堆。
这里也只是简单的验证下身份证号码,要想知道合不合法,就需要写程序去校验了。
QQ号:
匹配QQ号码,5-11位。
QQ号码是没有低于5位的,目前也没有11位以上,而且号码的第一位也不可能是0开头的。
微信号:
- /^[a-zA-Z][\w\-]{5,19}$/
匹配微信号,以字母开头6-20位。
微信号的规则,特地去查了官方的注册规则,微信号要求以字母开头,字母数字_-都是可以的,6到20位。
邮箱:
- /^\w([\.-\w])*@[a-zA-Z0-9]([\.\w])*$/
匹配大多数的邮箱规则。xx@xx.xx
这个正则能匹配大多数的邮箱,毕竟是大多数的,只能说能过滤60%的非法邮箱吧。邮箱的后缀也不能限定死,qq.com、163.com、126.com等等,用户要是用的自己的邮箱服务器呢,电子邮箱这块的匹配精确度不高的,无从预计。最好的是用邮箱插件,直接让用户选择什么类型的邮箱。
小结:正则匹配的始终是多数,能帮我们挡住大部分的非法数据,但正则也不是万能的,有些情况我们无法预计到,即时预计到了也无法去规避,熟悉规则的人还是能很容易就绕过去的。