ASP.NET日期验证器在不应该传递的时候

时间:2013-11-28 23:50:37

标签: c# asp.net regex validation

我在ASP.NET中使用RegularExpressionValidator。我有这些验证器用于我的asp:文本框控件:

<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的最小值和最大值,它按预期工作。但!如果我输入一年有2个数字的东西,比如15-11-28,一切都会通过,甚至是其他控件的其他验证器。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

检查日期格式(美国或其他),日期和月份的0-9不正确,例如:

2013-99-99

使用CompareValidator控件,主要用于字符串匹配,但可以检查两个日期范围。