Welcome to Rolland Town which Record fire's life.
« »
2003年12月26日03年9月-06年9月存档

111 views

几个我常用的正则表达式

  下面列出偶在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/

版权声明 »

可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
本文url:http://netfire.name/archives/20031226/76.html

日志信息 »

该日志于2003-12-26 13:21由 NetFire 发表在03年9月-06年9月存档分类下, 评论已关闭。

AdSense »

没有评论

抱歉,评论被关闭

返回顶部