Hi,
[1]*(?=[A-Za-z0-9]{8,})(?=[A-Za-z0-9]*[0-9])(?=[A-Za-z0-9]*[a-z])(?=[A-Za-z0-9]*[A-Z])[A-Za-z0-9]*$
- Stringanfang
- Beliebig viele Wortzeichen (man könnte auch \w schreiben)
- Lookahead: 8 oder mehr Wortzeichen gefolgt von einer Ziffer
da mischst Du 2 der vielen Lookaheads.
der 1. Lookahead: mindestens 8 Wortzeichen
der 2. Lookahead: beliebig viele Wortzeichen gefolgt von einer Ziffer
- Lookahead: Beliebig viele Wortzeichen gefolgt von einem Kleinbuchstaben
- Lookahead: Beliebig viele Wortzeichen gefolgt von einem Großbuchstaben
- Beliebig viele Wortzeichen
- Stringende
Lass mich raten: Hier wird ein Passwort auf seine Stärke geprüft, und die Anforderungen waren:
- Mindestens acht Zeichen,
- mindestens ein Kleinbuchstabe,
- mindestens ein Großbuchstabe,
- mindestens eine Ziffer.
Das drückt obige RegExp auch korrekt aus, soweit ich das sehe, wenn auch ziemlich umständlich.
Ich würde hier
- Auf die Länge prüfen >= 8 &&
- Auf die RegExp [a-z] prüfen &&
- Auf die RegExp [A-Z] prüfen &&
- Auf die RegExp \d prüfen
Manche Leute meinen halt, daß es sinnvoller ist, einen sehr komplizierten Ausdruck zu benutzen als mehrere einfache ...
Besser wäre eine Bibliothek, die die Passwortstärke sinnvoll berechnet und die nicht nur ASCII zulässt, sondern auch ein »ä« als Kleinbuchstaben anerkennt.
und auch Satzzeichen zuläßt.
Damit man Merksätze zu Paßwörtern verwenden kann, z.B.
Dieses war der 1. Streich, und der 2. folgt sogleich! ⇒ Paßwort: Dwd1S,ud2.fs!
cu,
Andreas
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
A-Za-z0-9 ↩︎