ASP.NET正则表达式日期验证拒绝特定日期

时间:2014-06-27 18:41:35

标签: c# javascript asp.net regex validation

这是一个奇怪的,我正在使用一个涉及大量输入的网站(尽可能多),我有一个问题,我的RegularExpressionValidator将有效日期标记为不正确,但只有以下一些:< / p>

  • 6月10日至29日
  • 二月全年

其他所有工作正常,并且永远不会将回发发送到服务器以进行验证,因此代码隐藏不应该受到责备。验证代码中唯一的引用如下:

<asp:TextBox ID="txtValidFrom" runat="server" placeholder="DD/MM/YYYY" >
</asp:TextBox>

<asp:RequiredFieldValidator ID="reqValidFrom" runat="server" ErrorMessage="Required"
    CssClass="errormessage" ControlToValidate="txtValidFrom">
</asp:RequiredFieldValidator>

<asp:RegularExpressionValidator ID="regexValidFrom" runat="server" 
    ControlToValidate="txtValidFrom" Display="Dynamic"
    ErrorMessage="Date not in correct format" Text="Wrong format!"
    CssClass="errormessage"
    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))))$">
</asp:RegularExpressionValidator>

正则表达式字符串绝对适用于1900年以后的所有日期。另一个奇怪的事情是它只有这个项目有问题,我已经在一个新的ASP.NET 2,3和4项目上测试了上面的代码,它的工作原理很好,它验证上述日期是正确的,没有错误。

我只能想象它的部署有问题,或者ASP生成的Javascript和项目中的某些东西之间存在冲突(比如jQuery);但是我希望如果是这样的话,它根本不起作用 - 不只是排除相当具体的日期,而且浏览器控制台中任何时候都没有抛出JS错误。

有没有人有这种经历的经历?由于具体的日期问题,在我看来这是一个非常奇怪的问题。

谢谢!

0 个答案:

没有答案