HI, j'ai besoin de vérifier les mots de passe. Le mot de passe ne doit pas contenir plus de 2 caractères répétitifs. P>
Mon mot de passe doit contenir au moins majuscule, minuscule, numéro et caractères spéciaux # ?! @ $% ^ & * - p>
Donc, si j'ai un mot de passe comme par exemple p>
mot de passe123 $ Il est valide Password123 $ il est invalide Passssword123 $ il est invalide Ppaassword123 $$ valide Ppaassword123 $$$ Il est invalide p>
S'il vous plaît aidez-moi merci p>
3 Réponses :
Je ne sais pas comment faire le caractère restreint et la validation de caractères répétée avec le même motif, mais ces deux motifs rempliront chaque besoin. Pour les utiliser, comparez votre chaîne de mot de passe sur les motifs et si une correspondance est trouvée, le mot de passe échoue.
Pour vérifier au moins un de chaque type de caractère:
^(?!(.)\1{2,})(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[#?!@$%^&*-])([a-zA-Z0-9#?!@$%^&*-]+)$
Cela ne permet aucun caractère sauf [a-za-z0-9 # ?! @ $% ^ & * -] code> - question n'empêche pas ( code>, < code> _ code>, : code>, etc
De plus, la lunette de regard négatif peut avoir besoin d'être (?!. * (.) \ 1 \ 1) code>
C'est une hypothèse cependant. L'OP a donné une liste spécifique de caractères spéciaux, pas un exemple de caractères spéciaux, ce qui précise les autres. Accordé, le mien est une hypothèse également, mais le vôtre s'initierait davantage s'ils avaient dit "caractères spéciaux, par exemple. # ?! @ $% ^ & * -"
Vous avez probablement raison sur le regard négatif, ma regex est un peu rouillée.
Exécutez-le via REGEX101 et votre expression ne correspond pas correctement. Des hypothèses, pourraient être "tout ce qui n'est pas interdit est autorisé" ou "tout ce qui n'est pas permis n'est interdit". seul op peut décider
https://regex101.com/r/ctbm4b/2/
^(?!.*(.)\1\1)(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[#?!@$%^&*-]).*$
^ code> ... $ code> - doit correspondre à la chaîne entière li>
-
(? =. * code> x fort> ) code> - doit contenir x strong>
-
(? =. * [A-Z]) CODE> - A..Z LI>
-
(? =. * [A-Z]) CODE> - A..Z LI>
-
(? =. * [0-9]) code> - 0..9 li>
-
(? =. * [# ?! @ $% ^ & * -]) code> - # ?! @ $% ^ & * - Li>
ul> li>
-
( code> y strud> ) + code> - une ou plusieurs répétitions de y fort> (Capture Group 1: \ 1 code>)
-
(.) code> - n'importe quoi (capture groupe 2: \ 2 code>) li>
-
(.) (?! \ 2 \ 2) code> - Tout ce qui n'est pas suivi par lui-même deux fois li>
ul> li>
ul> ou légèrement plus efficacement, en tirant la condition finale: p>
https://regex101.com/r/ctbm4b/3/ p> xxx pré>
-
(?!. * (.) \ 1 \ 1) code> - ne doit pas contenir trois répétitions de n'importe quel caractère li>
ul> p>
Vous voudrez peut-être jeter un coup d'œil à ces directives si vous implémente un algorithme de contrôle de mot de passe ...