So funktioniert das Muster
| Teil | Bedeutung |
|---|---|
(?=.*[a-z]) | Lookahead: mindestens ein Kleinbuchstabe irgendwo im String |
(?=.*[A-Z]) | Mindestens ein Großbuchstabe |
(?=.*\d) | Mindestens eine Ziffer |
(?=.*[^A-Za-z0-9]) | Mindestens ein Sonderzeichen |
.{8,} | Insgesamt acht oder mehr Zeichen |
Codebeispiele
JavaScript
const re = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^A-Za-z0-9]).{8,}$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^A-Za-z0-9]).{8,}', value))PHP
preg_match('/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^A-Za-z0-9]).{8,}$/', $value) === 1;
Hinweise und Einschränkungen
Jeder Lookahead prüft eine Regel, ohne Zeichen zu verbrauchen. Deshalb können die Regeln in beliebiger Reihenfolge stehen. Die aktuellen NIST-Empfehlungen setzen auf Länge (15+ Zeichen) und eine Prüfung gegen bekanntgewordene Passwörter statt auf Zusammensetzungsregeln. Erwäge daher eine reine Längenregel plus eine Stärkeanzeige. Ein Passwort kannst du mit dem Passwort-Generator erstellen.
Regex-Tester
Gib ein Muster ein und sieh zu, wie Übereinstimmungen in deinem Testtext in Echtzeit hervorgehoben werden.