Ich habe die folgenden Kriterien für die Erstellung einer regulären Ausdruck für ein Kennwort zu erzwingen, die den folgenden Regeln entspricht:Regulärer Ausdruck komplexe Passwörter, passende 3 von 4 Regeln
- Das Passwort 8 Zeichen lang sein müssen (das kann ich machen :-)).
Das Passwort muss dann Zeichen aus mindestens drei der folgenden vier Regeln enthalten:
- Ober Fall
- Kleinbuchstaben
- Zahlen
- Nicht-alphanumerische
Ich kann den Ausdruck alle diese Regeln mit dem folgenden Ausdruck übereinstimmen:
/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.[\W]).{8,}$/
Aber ich habe Schwierigkeiten damit, wie diese Weise in einer solchen zu tun, dass es nur jede 3 der 4 Regeln lösen muss.
Kann mir jemand dabei helfen?
ich muss sagen, dass dies einer der Fälle ist, wenn ich Ihren Code denken wahrscheinlich viel sein würde besser lesbar, wenn Sie stattdessen 4 verschiedene Regexs hätten. Und dann vielleicht eine Zählung und für jede der Regex, die Sie übereinstimmen, erhöhen Sie die Anzahl und dann am Ende Sie nur überprüfen, ob die Zählung 3 oder höher ist. –
Welche Programmiersprache benutzen Sie? – kennytm