2

我使用 RegularExpressionValidator 控件来验证名为 TextBox1 的 TextBox 控件,它是 VS2003 Web 应用程序中的 Web 表单,如下所示:

<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator id="RegularExpressionValidator1" runat="server" ErrorMessage="Fromat error."
 ValidationExpression="^(?=.*[0-9])(?=.*[a-zA-Z]).{8,10}$" ControlToValidate="TextBox1"></asp:RegularExpressionValidator>

当我输入字符串“qwer1asd”时,它不匹配。但同样的正则表达式:

^(?=.*[0-9])(?=.*[a-zA-Z]).{8,10}$

...在 JavaScript 中匹配。我如何解决它?

4

1 回答 1

1

试试这个正则表达式:

^(?=.{8,10}$)(?=.*[0-9])(?=.*[a-zA-Z]).+$

旧版本的 Internet Explorer(在此处描述)中存在一个错误,导致这样的正则表达式在客户端失败,即使它在服务器上工作也是如此。(这听起来与您所描述的相反,但我看不出您的正则表达式会失败的任何其他原因。)将长度检查移至第一个前瞻是该错误的行之有效的解决方法。

于 2012-04-13T14:09:38.453 回答