自己做网页写的一些常用正则表达式—欢迎拷用并指正!
来源:互联网 发布: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_
- 自己做网页写的一些常用正则表达式—欢迎拷用并指正!
- 常用的正则表达式(不需要在自己写了)
- 自己用过的一些正则表达式
- 自己写的一个基于数组实现的栈,欢迎大家批评指正,共同进步
- C++primer plus 第七章习题(自己写的,欢迎指正)
- 常用的一些正则表达式
- 一些常用的正则表达式
- 一些常用的正则表达式
- 一些常用的正则表达式
- 一些常用的正则表达式
- 一些常用的正则表达式
- 一些常用的正则表达式
- 一些常用的正则表达式
- 一些常用的正则表达式
- 一些常用的正则表达式
- 一些常用的正则表达式
- 一些常用的正则表达式
- 一些常用的正则表达式
- VFP经典64问
- ASP.NET题目集
- Android是什么? - What is Android?
- Struts中 ActionMessages与ActionErrors的区别
- 一篇好文让你明白为何房价如此高,肉价涨得这么快(转帖)
- 自己做网页写的一些常用正则表达式—欢迎拷用并指正!
- 防止一个用户登录多次的方法
- 自我提升的十大技巧
- “家”建立了
- Grid控件高级应用
- 关于.NET的异常处理的几个误区
- 访微软收购主管:微软下一个收购目标是什么
- delphi 采用 raw socket 编写 net send 网络消息程序
- QT4:遍历删除某个目录下的所有文件