自己做网页写的一些常用正则表达式—欢迎拷用并指正!

来源:互联网 发布:mac管理员账户不见了 编辑:程序博客网 时间:2024/05/22 00:47

最近自个弄了个网站,由于涉及到数据采集,所以学起了正则表达式。网站需要对注册用户信息进行校验,网上找了很多看起来很简洁,但验证时有不少错误信息没有验证出来。所以,自己亲自操刀,写了来用。现在贴上来,供大家拷用。有什么错误,请指正。欢迎来信交流!
因为验证严格的关系,每个表达式都不短。

一、 Email地址格式检查
        表达式:([A-Za-z][^/W_]{0,1}|[A-Za-z][/w-]*[^/W_])@(([^/W_]{1,2}|[^/W_][/w-]*[^/W_])/.)*([^/W_]+[/w-]*[^/W_]+/.){1}([A-Za-z]{2,4}){1}/b
         功能:
                    能排除如:abc@abc.abcde 的错误地址。域名后缀名最长为4位,
                    能准确排除如:aa@xxx.x.com的错误地址,目前国内还没有单字母域名使用
                    能排除如:_-ab-_@xxx.com的错误地址
                    能排除如:aa@_-111-_.xxx.com之类的错误地址
                    能排除如aa@_-aa-_.com之类的地址
                    能排除如:aa@aaa._-bbb-_.com之类的错误地址

二、验证移动、联通手机号以及小灵通(固定电话)号码
       表达式:13/d{9}/b|15[0689]/d{8}/b|010[- ]?[1-9]/d{7}/b|02/d[- ]?[1-9]/d{7}/b|0[3-9]/d{2}[- ]?[1-9]/d{6,7}/b
       功能:能验证移动及联通130-139号码,以及150,156,158,159新号码段,以及各地小灵通(固定电话)号码
       测试用例:
1561222222222
15977001848sssd
13877991848
010 12345678
020-12345678
021-12345678
0755-12345678
0345-1234567
020-11111111
020-12345678
021-12345678
0755-12345678
0345-1234567

三、IP地址校验正则表达式
     表达式:^((2[0-4]/d|25[0-5]|1?/d{0,2})/.){3}(2[0-4]/d|25[0-5]|1?/d{0,2})$
     功能:严格验证xxx.xxx.xxx.xxx格式的IP地址。
     测试用例:
       122.11.222.22
       111.222.33.44
       1.1.1.1
       333.333.12.22  

四、18位身份证号正则表达式
     表达式:(?<id>/d{6}(?<year>(19[3-9]/d|2[01]{2}/d))(?<month>(0[1-9]|1[012]))(?<date>(0[1-9]|[12]/d|3[01]))/d{4})
不加标志的表达式:/d{6}(19[3-9]/d|2[01]{2}/d)(0[1-9]|1[012])(0[1-9]|[12]/d|3[01])/d{4}
     功能:严格验证18位身份证号
 测试用例:
420105200203311614 细化了出生年月日的校验,
出生年:在1930-2119之间的为合法
月:在01-12之间为合法
日:在01-31之间为合法

五、验证yyyy-mm-dd或yyyy/mm/dd日期格式
     表达式:/b(?<id>(?<year>(19[3-9]/d|2[01]{2}/d))[-//](?<month>(0[1-9]|1[012]))[-//](?<date>(0[1-9]|[12]/d|3[01])))/b
    不加标志的表达式:/d{6}(19[3-9]/d|2[01]{2}/d)(0[1-9]|1[012])(0[1-9]|[12]/d|3[01])/d{4}
    功能:
可验证是否符合:yyyy-mm-dd格式,yyyy/mm/dd格式的日期字符串,细化了年月日的校验,
2002-03-31
2002/03/31
年:在1930-2119之间的为合法,根据需要可以将19[3-9]/d|2[01]{2}/d修改为:/d{4}
月:在01-12之间为合法
日:在01-31之间为合法

六、验证hh-mm-ss或hh:mm:ss格式的时间
     表达式:/b(/d|[01]/d|2[0-4])[:-](/d|[01]/d|2[0-4])[:-](/d|[0-5]/d|60)/b
     测试用例:
     172:01:12 
     6-12-24
     9:10:09
     12:6:5

七、验证注册用户名(只能以字母开头,可以包含字母,数字,以及连接号,下划线,结尾不能为连接号,下划线)
    表达式:[A-Za-z][/w-]*[A-Za-z0-9]
    测试用例:
合法用户名:
abc
a12bc
a-bc
a_bc
a333
a_333
错误用户名:
111
111abc
def-
fijk_

原创粉丝点击