|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre actif
![]() Inscription : octobre 2006 Messages : 664 ![]() |
Bonjour,
J'essaie de créer une expression régulière pour vérifier la complexité d'un mot de passe. Je voudrais qu'il ait une taille de 7 caractères minimum et qu'il contienne au moins 1 lettre majuscule, 1 lettre minuscule et 1 chiffre. Voici ce que j'ai commencé à faire mais ça ne fonctionne pas : EDIT : J'ai un petit peu avancé, celle-ci semble fonctionner mais ne vérifie pas la taille de la chaine : Merci pour votre aide, ZiP |
|
00
|
|
|
#2 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 808 ![]() |
Tu peux déjà commencer par regarder la
: Les expressions régulières...
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Thomas Ingénieur développement logiciels Inscription : juillet 2007 Messages : 741 ![]() |
Pour compléter la réponse de Bovino, je suis pas sûr qu'en une expression régulière t'arrives à vérifier que le mot de passe contient bien les caractères que tu veux.
Tu pourras valider que le mot de passe fait bien 7 caractères et valider qu'il contient bien des caractères dans [a-zA-Z0-9] mais t'es pas sûr qu'ils sont effectivement utilisé. Ce que tu peux déjà faire, c'est vérifier la taille de ton mot de passe, et gérer l'erreur au cas ou ca va pas (sans regex donc). Et ensuite vérifier que la chaine contient bien un A-Z et ensuite un a-z et ensuite un 0-9. |
|
|
00
|
|
|
#4 | |||
|
Membre régulier
![]() Inscription : décembre 2007 Messages : 61 ![]() |
Citation:
Code :
|
|||
|
|
10
|
|
|
#5 | |||||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 808 ![]() |
Citation:
Code :
La réponse de Tober est correcte, il faut faire trois tests distincts (ou les regrouper dans un seul, mais ensuite, c'est la lisibilité qui en pâtit...
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|||||
|
10
|
|
|
#6 |
|
Membre Expert
![]() Thomas Ingénieur développement logiciels Inscription : juillet 2007 Messages : 741 ![]() |
Jamais vu de ?= dans une expression régulière
C'est spécial javascript ou ? Merci pour ta défence Bovino, c'est ce que je voulais dire |
|
|
00
|
|
|
#7 | |||||
|
Membre régulier
![]() Inscription : décembre 2007 Messages : 61 ![]() |
Citation:
var passwordStrength = /(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{7,}/; De plus je ne vérifie pas qu'il y ai "au moins une minuscule, puis au moins une majuscule, puis au moins un nombre" mais au moins une minuscule ET au moins une majuscule ET au moins un nombre dans n'importe quel ordre. Car j'utilise des groupes dits "zero-length". Ton exemple te retourne false car ton test ne fait que 6 caractères et que la longueur minimale du mot de passe est 7 caractères. Donc au contraire cela marche très bien. Code :
@Tober Non non ce n'est pas spécifique JS, c'est ce qu'on appelle un "positive lookahead". |
|||||
|
|
00
|
|
|
#8 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 808 ![]() |
recherche les occurrences de pattern1 qui sont suivies de pattern2.
recherche les occurrences de pattern1 qui ne sont pas suivies de pattern2. Donc sauf erreur de ma part, l'expression donnée est un peu bancale et en tout état de cause, confirme quand même que ça nuit légèrement à la lisibilité !
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
00
|
|
|
#9 | |
|
Membre régulier
![]() Inscription : décembre 2007 Messages : 61 ![]() |
Citation:
Après je te l'accorde c'est une utilisation un peu plus avancée des expressions régulières. |
|
|
|
00
|
|
|
#10 | ||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 808 ![]() |
Citation:
Citation:
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
||
|
00
|
|
|
#11 | |
|
Membre régulier
![]() Inscription : décembre 2007 Messages : 61 ![]() |
Citation:
|
|
|
|
00
|
|
|
#12 |
|
Membre actif
![]() Inscription : octobre 2006 Messages : 664 ![]() |
Bonsoir,
Le code suivant marche à merveille : Code :
var maReg = /(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{7,}/; Cordialement, ZiP |
|
00
|
|
|
#13 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 808 ![]() |
Ben j'avoue que j'étais pas au top sur les lookahead...
Ca mériterait bien une proposition pour la FAQ RegExp !
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
00
|
|
|
#14 |
|
Membre actif
![]() Inscription : octobre 2006 Messages : 664 ![]() |
+1 pour la FAQ
Cordialement, ZiP |
|
00
|
Copyright © 2000-2012 - www.developpez.com