2011-03-07 3 views
4

Je veux valider le mot de passe. Voici mes exigences.Regex pour la vérification de mot de passe

longueur de passe minimum: 8
Nombre minimum de caractères minuscules: 1
Nombre minimum de caractères majuscules: 1
Nombre minimum de caractères numériques: 1

Comment écrire un regex pour cela?

+2

Ma suggestion serait d'utiliser une fonction ValidatePassword à la place. Vous devrez peut-être mettre à jour ceci pour inclure (par exemple) le mot de passe ne peut pas contenir le nom d'utilisateur. Juste une pensée. :) – Russell

+1

Regex n'est pas le meilleur outil pour ce travail. – Jacob

+0

@Jacob: Habituellement, les requêtes de ce type surviennent lorsqu'une personne utilise un framework qui ne permet qu'une regex pour la validation. – Gabe

Répondre

4

Vous pouvez utiliser les expressions régulières suivantes:

^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]).{8,}$ 
+1

Je pensais que '? =' (Look-ahead positif de largeur nulle) n'était pas supporté dans certaines des langues communes côté client, mais après quelques recherches, je suis heureux de voir que j'avais tort. C'est le Regex à utiliser. – neontapir

2

Je suis d'accord avec @Russell, une fonction est un meilleur choix pour la validation de mot de passe. Et il est difficile d'imaginer un seul Regex traitant tous ces cas. Je pense que vous devriez vérifier chacun à son tour.

Individuellement, les expressions Regex sont:

  • .{8} matchs au moins 8 caractères
  • [a-z] correspond à un seul caractère minuscule
  • [A-Z] correspond à un seul caractère majuscule
  • [0-9] correspond à un chiffre

Cela étant dit, cela ne serait utile que pour la vérification côté client avant que le serveur ne fasse une validation en profondeur.

0

S'il vous plaît trouver ci-dessous regex pour vos besoins:

(?=^.{8}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$ 
Questions connexes