Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# (dd-mm-yyyy)的正则表达式工作不正常_C#_Asp.net - Fatal编程技术网

C# (dd-mm-yyyy)的正则表达式工作不正常

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.Net页面中有一个RegularExpressionValidator

我用它来检查文本框控件的有效日期,包括闰年

代码是:

<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。