我希望使用RegularExpressionValidator
来表示此格式的日期yyyy-mm-dd(例如:2012-11-29),这是我的表达:
/ ^(19 [789] \ d | 20 [0123] \ d) - (0 \ d | 1 [012] | \ d) - (31 | 30 | [012] \ d | \ d)$ /
我在http://www.quanetic.com/Regex上测试它并且它可以工作,但是如果我在我的asp.net应用程序中执行此操作它不起作用
<tr>
<td>Gültig ab:</td>
<td><asp:TextBox ID="txtVon" runat="server" ></asp:TextBox></td>
<td><asp:ImageButton ID="imgVon" runat="server" ImageUrl="images/Calender.ico" Width="15" Height="15" />
<asp:CalendarExtender runat="server" ID="E_Von" TargetControlID="txtVon" Format="yyyy-MM-dd" PopupButtonID="imgVon"/></td>
<td>
<asp:RequiredFieldValidator ID="ValVon"
runat="server" ForeColor="red"
ErrorMessage="*" ControlToValidate="txtVon"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="regVon"
runat="server" ControlToValidate="txtVon"
ErrorMessage="*Format" ForeColor="red"
ValidationExpression="/^(19[789]\d|20[0123]\d)\-(0\d|1[012]|\d)\-(31|30|[012]\d|\d)$/"></asp:RegularExpressionValidator>
</td>
</tr>
错误在哪里?
答案 0 :(得分:5)
删除char&#34; /&#34;在字符串的开头和字符串中。
你会有
ValidationExpression="^(19[789]\d|20[0123]\d)-(0\d|1[012]|\d)-(31|30|[012]\d|\d)$"
答案 1 :(得分:1)
我使用以下内容,它可以正常使用。
\A(?:^(19|20)\d\d([- /.])(0[1-9]|1[012])\2(0[1-9]|[12][0-9]|3[01])$)\Z