Je veux une expression régulière pour vérifier ça :
Un mot de passe contient au moins huit caractères, dont au moins un chiffre et comprend des lettres minuscules et majuscules ainsi que des caractères spéciaux, par exemple #
, ?``,
!``.
Il ne peut pas être votre ancien mot de passe ou contenir votre nom d'utilisateur, "password"
, ou "websitename"
.
Et voici mon expression de validation qui est pour huit caractères dont une lettre majuscule, une lettre minuscule, et un chiffre ou un caractère spécial.
(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"
Comment puis-je l'écrire pour un mot de passe doit comporter huit caractères dont une lettre majuscule, un caractère spécial et des caractères alphanumériques ?
Minimum huit caractères, au moins une lettre et un chiffre :
"^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$"
Minimum huit caractères, au moins une lettre, un chiffre et un caractère spécial :
"^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$"
Minimum huit caractères, au moins une lettre majuscule, une lettre minuscule et un chiffre :
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$"
Minimum huit caractères, au moins une lettre majuscule, une lettre minuscule, un chiffre et un caractère spécial :
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$"
Minimum huit et maximum 10 caractères, au moins une lettre majuscule, une lettre minuscule, un chiffre et un caractère spécial :
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,10}$"
Vous pouvez utiliser cette expression rationnelle avec plusieurs [assertions (conditions) d'anticipation][1] :
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$
Cette regex appliquera ces règles :
Au moins une [lettre anglaise] majuscule[2], (?=.* ?[A-Z])
.
Au moins une lettre minuscule anglaise, (?=.* ?[a-z])
Au moins un chiffre, (?=.* ?[0-9])
Au moins un caractère spécial, (?=.* ?[#?!@$%^&*-])
Minimum huit en longueur .{8,}
(avec les ancres)
[1] : https://www.regular-expressions.info/lookaround.html [2] : https://en.wikipedia.org/wiki/English_alphabet
Juste une petite amélioration pour la réponse de @anubhava's : Puisque les caractères spéciaux sont limités à ceux du clavier, utilisez ceci pour tout caractère spécial :
^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,}$
Cette regex appliquera ces règles :