2010-07-13 9 views
2

Je le balisage asp.net suivant:Expression régulière échoue dans IE, mais fonctionne dans Chrome et Firefox?

<asp:TextBox ID="txtPassword" runat="server" TextMode="Password" 
ValidationGroup="passwordValidation"></asp:TextBox> 

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" Display="Dynamic" 
ControlToValidate="txtPassword" Text="Required" ValidationGroup="passwordValidation" /> 

<asp:RegularExpressionValidator runat="server" ControlToValidate="txtPassword" 
Text="Passwords should contain a minimum of 7 characters with at least one numeric 
character." ValidationExpression="^(?=.*\d{1})(?=.*[a-zA-Z]{2}).{7,}$" 
ValidationGroup="passwordValidation" Display="Dynamic"></asp:RegularExpressionValidator> 

Si je tape un mot de passe comme test1234, il passe en chrome et firefox, mais le message que mon mot de passe doit contenir un minimum de 7 caractères avec au moins un caractère numérique est montré dans Internet Explorer

+0

J'ai testé le code ci-dessus dans VS2010 sur IE8 et ne peut pas reproduire le problème. Pouvez-vous fournir plus de détails? – Kelsey

+0

... en particulier, quelle (s) version (s) d'IE êtes-vous en train de tester? –

+0

J'utilise IE 8 – Xaisoft

Répondre

2

Vous êtes probablement mordu par l'infâme IE regex lookahead bug. Vous devriez être capable de contourner cela en faisant en sorte que la longueur vérifie un lookahead comme les autres conditions, et en le mettant en premier.

^(?=.{7,}$)(?=.*\d)(?=.*[a-zA-Z]{2}).* 

Mais je pense que je vois un autre problème. (?=.*[a-zA-Z]{2}) correspond à deux consécutifs lettres; est-ce vraiment votre intention? Si vous souhaitez exiger au moins deux lettres, mais pas nécessairement consécutives, vous devez utiliser (?=.*[a-zA-Z].*[a-zA-Z]).

+0

Je vais donner un coup de feu et laissez-vous savoir. Je suis en train de lire le post à ce sujet. Je suis nouveau pour les expressions régulières, donc lookahead va au-dessus de ma tête. – Xaisoft

+0

Vous pourriez vouloir vérifier ce site, si vous ne l'avez pas déjà fait: http://www.regular-expressions.info/ –

+0

J'ai eu à le tester et cela a fonctionné. Merci pour le lien. – Xaisoft

Questions connexes