为什么我的正则表达式在ASP.NET中不起作用

Tar*_*sov 1 javascript c# regex asp.net validation

我想用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>
Run Code Online (Sandbox Code Playgroud)

错误在哪里?

小智 5

只需在开头和字符串中删除字符"/"即可.

你会的

ValidationExpression="^(19[789]\d|20[0123]\d)-(0\d|1[012]|\d)-(31|30|[012]\d|\d)$"
Run Code Online (Sandbox Code Playgroud)