2009-07-20 12 views
4

Ich habe einen Regex-Validator auf meiner asp.net-Seite, die ein Passwort überprüft. Die Regex istSonderbarer Fehler beim Ausführen eines Regex-Validators in IE7

^(?=.*[0-9])(?=.*[a-zæøåA-ZÆØÅ])[a-zA-ZæøåÆØÅ0-9]{6,}$ 

.. Nun, es funktioniert gut in IE8 und FF3, aber es bestätigt zu falsch, egal was ich in IE7 versuchen. Gibt es irgendwelche Bugs, die ich hier kennen sollte? : S

Vielen Dank im Voraus ..

Antwort

1

Scheint wie IE7 nicht wie die {6,} am Ende der Zeichenfolge. Einige Artikel dazu im Internet gefunden. Auf jeden Fall war die Lösung in einem Bereich von selbst zu setzen :)

^(?=.{6,}$)(?=.*[0-9])(?=.*[a-zæøåA-ZÆØÅ])[a-zA-ZæøåÆØÅ0-9]* 
+1

Es ist nicht die '{6,}', die das Problem verursacht, es ist die Lookaheads. Steve Levithan, mit Hilfe von Jan Goyvaerts, hat einen guten Job gemacht, den Fehler in Steves Blog zu sezieren: http://blog.stevenlevithan.com/archives/regex-lookahead-bug –

0

Sieht aus wie Sie einige Codierung Probleme mit Ihrem Beispiel dort haben. Sofern Sie es nicht unbedingt auf der Client-Seite benötigen, empfehle ich, einen CustomValidator zu verwenden, für den die Logik über den Ereignishandler OnServerValidate ausgeführt wird. Validieren auf der Serverseite hält Sie von den regulären JavaScript-Ausdrücken ab, die über die Browserkompatibilität hinausgehen.

1

Sie müssen Ihre Entitäten codieren. Versuchen Sie Folgendes:

^(?=.*[0-9])(?=.*[a-z\xE6\xF8\xE5A-Z\xC6\xD8\xC5])[a-zA-Z\xE6\xF8\xE5A-Z\xC6\xD8\xC50-9]{6,}$ 
0

Ich hatte auch Probleme mit Internet Explorer 7.

Hier ist, was ich in der Lage war, zu verwenden 8 Zeichen erfordern, eine Ziffer und eine Zahl (erlaubt Leerzeichen):

(?!^[0-9]*$)(?!^[ [email protected]#$%^&amp;*()_+=<&gt;?]*$)^([ [email protected]#$%^&amp;*()_+=<&gt;?0-9]{8,20})$ 
Verwandte Themen