几个我常用的正则表达式
下面列出偶在ASP.NET中最常用的几个正则表达式。大家补充、修改。前天有个MOP的朋友问我winform下面的效验,当时脑子没有反应过来,他要只允许输入数字,其实可以构造Regex 对象。他要VB.NET的,当时就用isnumeric给写了。(ps:我没有测试。反过来想,如果可以构造,为什么MS没有相应的支持winform的控件呢?)
- 效验mail是否有效
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* - 效验输入的年月日的格式(正确的输入:2003-12-25,闰年可判断)
A.以下正确的输入格式: [2004-2-29], [2004-02-29 10:29:39 pm], [2004/12/31]
^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[1-9])|(1[0-2]))\:([0-5][0-9])((\s)|(\:([0-5][0-9])\s))([AM|PM|am|pm]{2,2})))?$
B.以下正确的输入格式:[0001-12-31], [9999 09 30], [2002/03/03]^\d{4}[\-\/\s]?((((0[13578])|(1[02]))[\-\/\s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\-\/\s]?(([0-2][0-9])|(30)))|(02[\-\/\s]?[0-2][0-9]))$
- 国内电话号码(这个自己写的有点问题,正确的格式:1234,0123-12345678,012-1234567,13856932145。问题就在于效验手机,现在下面的代码输入4-11位数字都有效,改了几次都有问题,看来是数学没有学好的原因)
(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)
- 验证一年中的12个月的输入。正确的输入:01,12,08
^(0[1-9]|1[0-2])
- 验证一个月日期的输入。正确的输入:1-31
^((0?[1-9])|((1|2)[0-9])|30|31)$
- 匹配中文字符: [\u4e00-\u9fa5]
更多的可以查看正则表达式专门站——http://www.regexlib.com/
没有评论