如何用政则表达式验证日期??
要求:日期格式可以为 yyyy-mm-dd yyyy/mm/dd 或 yy-m-d yy/m/d
但是 0< mm <=12, 30< dd <31,mm = 2时 28< dd <29
这个要求政则表达式办得到吗??

解决方案 »

  1.   

    别搞那么复杂吧,要么在输入界面使用日期控件,要么得到文本后用DateTime.Parse(),捕捉一下异常,出错则不是日期格式
      

  2.   

    Expression:  
    ^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578]
    )|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[4
    69])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\
    s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([1
    3579][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})))?$
        
    Description:   Matches ANSI SQL date format YYYY-mm-dd hh:mi:ss am/pm. You can use / - or space for date delimiters, so 2004-12-31 works just as well as 2004/12/31. Checks leap year from 1901 to 2099.  Matches:  [2004-2-29], [2004-02-29 10:29:39 pm], [2004/12/31]  [ More Details]
      
    Non-Matches:  [2003-2-29], [2003-13-02], [2003-2-2 10:72:30 am]  
      

  3.   

    to minajo21(大眼睛) 你真的很牛!!!
    to xjpeng(海风) 我在pda上开发,没有日期录入控件,而且异常的捕捉和处理相当耗时,不适合PDA
    谢谢 minajo21(大眼睛)