C# (dd-mm-yyyy)的正则表达式工作不正常
我的ASP.Net页面中有一个RegularExpressionValidator 我用它来检查文本框控件的有效日期,包括闰年 代码是:C# (dd-mm-yyyy)的正则表达式工作不正常,c#,asp.net,C#,Asp.net,我的ASP.Net页面中有一个RegularExpressionValidator 我用它来检查文本框控件的有效日期,包括闰年 代码是: <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="Enter Valid Date" Display="Dynamic" Font-Bold="true" ForeColor="Red" ValidationE
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
ErrorMessage="Enter Valid Date" Display="Dynamic" Font-Bold="true" ForeColor="Red"
ValidationExpression=
"^(((0[1-9]|[12]\d|3[01])(-|\/)(0[13578]|1[02])(-|\/)((19|[2-9]\d)\d{2}))|((0
[1-9]|[12]\d|30)(-|\/)(0[13456789]|1[012])(-|\/)((19|[2-9]\d)\d{2}))|((0[1-9]|1
\d|2[0-8])(-|\/)02(-|\/)
((19|[2-9]\d)\d{2}))|(29(-|\/)02(-|\/)((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579]
[26])| ((16|[2468]
[048]|[3579][26])00))))$" ControlToValidate="txtbdate">
</asp:RegularExpressionValidator>
所有日期都已检查,但无法检查日期:09-09-2000
请帮忙
提前感谢。第二条“行”将与之匹配 我怀疑是正则表达式中的所有新行导致了这个问题
((0[1-9]|[12]\d|30)(-|\/)(0[13456789]|1[012])(-|\/)((19|[2-9]\d)\d{2}))
您可以在此处进行测试:
对我来说效果很好。这个rx太疯狂了,我建议你不要使用返回布尔值的
Tryparse
将它转换为datetime。如果您的日期无效,它将返回false。如果上述建议通过,并且您想了解更多可读性的解决方案,它甚至还有一个datetime函数,IsLeapYear。