2013-11-28 10 views
0

我在ASP.NET中使用RegularExpressionValidator。我有這驗證了我的asp:文本框控件:ASP.NET日期驗證器在不應該傳遞時

<asp:RangeValidator 
       ID="rvDate" 
       runat="server" 
       ControlToValidate="txtCrimeDate" 
       Type="Date" 
       ErrorMessage="Must be within latest three months" 
       Display="Dynamic" 
       OnInit="RangeValidator_Init"> 
      </asp:RangeValidator> 
      <asp:RegularExpressionValidator 
       ID="revDate" 
       runat="server" 
       ControlToValidate="txtCrimeDate" 
       Display="Dynamic" 
       ErrorMessage="Must be in format YYYY-MM-DD" 
       ValidationExpression="[0-9]{4}-[0-9]{2}-[0-9]{2}"> 
      </asp:RegularExpressionValidator> 

我已經設置了最小和RangeValidator控件的最大值在代碼後面,它按預期工作。但!如果我輸入一年中有兩個數字的東西,比如15-11-28,所有東西都會通過,甚至其他控件的其他驗證器都會通過。有任何想法嗎?

回答

0

檢查日期和月份日期格式(美國或其他方式)和0-9是不正確的。例如:

2013-99-99 

考慮使用CompareValidator控件,這主要用於字符串匹配,但可在兩個日期範圍之間進行檢查。

+0

是@Mathemats,但已經在RangeValidator中處理過了。我仍然不明白兩個數字是如何通過的,當我說它在「 - 」之前必須是4時? – guitarzero

+0

@ user2989484更好的是,http://stackoverflow.com/questions/939802/date-validation-with-asp-net-validator?rq=1 – Mathemats