La Regex du mot de passe doit contenir au moins huit caractères, au moins un chiffre et des lettres minuscules et majuscules ainsi que des caractères spéciaux.

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}$"
Commentaires (22)

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 :

Commentaires (36)

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 :

  • Au moins une lettre anglaise majuscule
  • Au moins une lettre minuscule anglaise
  • Au moins un chiffre
  • Au moins un caractère spécial
  • Au moins huit caractères de longueur
Commentaires (3)