日期:2014-05-19  浏览次数:20473 次

日期正则表达遇到怪问题 简单请看看
在表达是(19|20)\d\d[-/.](0?[1-9]|1[012])[-/.](0[1-9]|[12][0-9]|3[01])的时候   日子如果是2位数就没问题   如果是1位数不带0就不能匹配   这个没问题
然后为了可以匹配不带0的   我就改成(19|20)\d\d[-/.](0?[1-9]|1[012])[-/.](0?[1-9]|[12][0-9]|3[01])   只加了一个问号   结果1位的时候带不带0都是对的   但是2位数的时候就会不能匹配了   请问是怎么回事呢?   谢谢

------解决方案--------------------
路过~~~,可以另外给你一个
<asp:RegularExpressionValidator Runat= "server " ID= "Regularexpressionvalidator1 " ControlToValidate= "txtBookAddtime " ErrorMessage= "时间格式不对 " ValidationExpression= "^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$ "> </asp:RegularExpressionValidator>
------解决方案--------------------
这样就行了

(19|20)\d\d[-/.](0?[1-9]|1[012])[-/.]([12][0-9]|3[01]|0?[1-9])

能看出区别来吧