0

我知道这样的问题很多,感觉就像一个愚蠢的问题。由于我还没有找到对我关闭的解决方案,这就是我发布这个的原因。我的常规 exp 验证器中有一个正则表达式

<asp:RegularExpressionValidator ID="RegularExpressionValidator3" runat="server" ErrorMessage="Invalid date format. Valid dates are 12/31/2009 (mm/dd/yyyy). " ControlToValidate="txtDOB" Display="None" EnableTheming="False" EnableViewState="False" SetFocusOnError="True"  ValidationGroup="grpUser"
ValidationExpression="^(?=\d)(?:(?:31(?!.(?:0?[2469]|11))|(?:30|29)(?!.0?2)|29(?=.0?2.(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(?:\x20|$))|(?:2[0-8]|1\d|0?[1-9]))([-./])(?:1[012]|0?[1-9])\1(?:1[6-9]|[2-9]\d)?\d\d(?:(?=\x20\d)\x20|$))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\x20[AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$"></asp:RegularExpressionValidator>

它无法验证 mm/dd/yyyy 或 m/d/yyyy 格式的日期。我从 RegexLib 中获取了这个,作者说它对两种格式都有效。是 ^ 和 $ 创建问题。请帮忙。

4

3 回答 3

11

除非您有充分的理由不这样做,否则您应该使用CompareValidator

<asp:CompareValidator Operator="DataTypeCheck" Type="Date" ... 
于 2012-09-04T15:48:26.683 回答
1

这是有效的

^(0?[1-9]|[12][0-9]|3[01])[\/](0?[1-9]|1[012])[\/]\d{4}$
于 2012-09-03T12:55:46.197 回答
0
 <asp:RegularExpressionValidator 
     ValidationExpression="^([0-9]|0[1-9]|1[012])\/([0-9]|0[1-9]|[12][0-9]|3[01])\/(19|20)\d\d$"
     ControlToValidate="txtDOB" ErrorMessage="Invalid Format. Use MM/DD/YYYY" runat="server"
     ValidationGroup="Password" CssClass="colorred">
</asp:RegularExpressionValidator>

这适用于具有有效日期的m/d/yyyymm/dd/yyyy

于 2016-01-18T15:25:40.777 回答