Regex für Passwort: "Mindestens 1 Buchstabe, 1 Ziffer, 1 Sonderzeichen und SOLLTEN NICHT mit einem Sonderzeichen beginnen"

9

Ich brauche einen regulären Ausdruck für ein Passwortfeld.

Die Voraussetzung ist:

  1. Das Passwort muss 8 bis 20 Zeichen lang sein

  2. Muss mindestens einen Buchstaben und eine Zahl und ein Sonderzeichen aus !@#$%^&*()_+ enthalten.

  3. Sollte nicht mit einem Sonderzeichen beginnen

Ich habe es versucht

%Vor%

Es funktioniert, aber wie schränken Sie Sonderzeichen vom Beginn des Passwortes ein? Auch wenn Sie einen effizienteren Regex als den oben genannten haben, schlagen Sie bitte vor.

Danke

    
adiga 14.01.2015, 08:15
quelle

1 Antwort

11

Es ist einfach, fügen Sie am Anfang einfach eine weitere Zeichenklasse hinzu

%Vor%
  • [A-Za-z\d] Stellt sicher, dass das erste Zeichen ein Alphabet oder eine Ziffer ist.

  • [A-Za-z\d!@#$%^&*()_+]{7,19} entspricht mindestens 7 maximal 19 Zeichen. Dies ist erforderlich, da die unterstellende Zeichenklasse ein einzelnes Zeichen verbrauchen würde, wodurch die Gesamtzahl der Zeichen in der Zeichenfolge mindestens 8 und höchstens 20 beträgt.

  • $ Verankert die Regex am Ende der Zeichenfolge. Stellt sicher, dass unserem gültigen Passwort nichts folgt

Regex-Demo

%Vor%     
nu11p01n73R 14.01.2015, 08:22
quelle

Tags und Links