Fonctionnement du modèle
| Partie | Signification |
|---|---|
(?=.*[a-z]) | Anticipation (lookahead) : au moins une lettre minuscule quelque part |
(?=.*[A-Z]) | Au moins une lettre majuscule |
(?=.*\d) | Au moins un chiffre |
(?=.*[^A-Za-z0-9]) | Au moins un symbole |
.{8,} | Huit caractères ou plus au total |
Exemples de code
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;
Remarques et limites
Chaque anticipation vérifie une seule règle sans consommer de caractères, de sorte que les règles peuvent apparaître dans n'importe quel ordre. Les recommandations actuelles du NIST privilégient la longueur (15 caractères ou plus) et la vérification des mots de passe ayant fuité, plutôt que les règles de composition : envisagez une règle basée uniquement sur la longueur, accompagnée d'un indicateur de robustesse. Vous pouvez en générer un avec le Générateur de mot de passe.
Testeur d’expressions régulières
Saisissez un modèle et observez les correspondances s'afficher en temps réel dans votre texte de test.