2

以下のように、RegularExpressionValidator コントロールを使用して、VS2003 Web アプリケーションの Web フォームである TextBox1 という名前の TextBox コントロールを検証します。

<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 に答える