L'ordre de lecture des Regex
Résolu/Fermé
A voir également:
- L'ordre de lecture des Regex
- Excel trier par ordre croissant chiffre - Guide
- Confirmation de lecture whatsapp - Guide
- Accusé de lecture gmail - Guide
- Triez cette liste par ordre alphabétique des villes et par note de la meilleure à la moins bonne. quel mot est formé par les 8 premières lettres de la colonne code ? ✓ - Forum Excel
- Ordre meilleur ami snap - Forum Snapchat
1 réponse
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié par [Dal] le 2/11/2015 à 18:39
Modifié par [Dal] le 2/11/2015 à 18:39
Salut Syrano,
En faisant une succession de 4 classes différentes, tu imposes cet ordre.
Fait une classe au lieu 4, où tu indiques les caractères "autorisés", comme cela :
Note que cela ne va pas matcher les caractères accentués (de même que la ponctuation, etc.) et que cela va matcher à partir de 1 caractère, ce qui fait un mot de passe un peu court.
Pour imposer une taille d'au moins 15 caractères et pas de taille maximale, tu ferais ceci :
J'ai mis ^ et $ pour indiquer le début et fin en dehors des crochets, car sinon sinon tu indiques que ces caractères littéraux font partie de la classe.
Dal
En faisant une succession de 4 classes différentes, tu imposes cet ordre.
Fait une classe au lieu 4, où tu indiques les caractères "autorisés", comme cela :
/^[A-Za-z0-9]+$/
Note que cela ne va pas matcher les caractères accentués (de même que la ponctuation, etc.) et que cela va matcher à partir de 1 caractère, ce qui fait un mot de passe un peu court.
Pour imposer une taille d'au moins 15 caractères et pas de taille maximale, tu ferais ceci :
/^[A-Za-z0-9]{15,}$/
J'ai mis ^ et $ pour indiquer le début et fin en dehors des crochets, car sinon sinon tu indiques que ces caractères littéraux font partie de la classe.
Dal
2 nov. 2015 à 18:55
j'ai déjà exploité cette piste mais là, c'est vrais que l'ordre ne sera d'aucune utilité mais je peux aussi écrire un mot de passe comme aaaaaaaaa ou AAAAAAAAA ou 99999999 et il affichera toujours True car, je crois, qu'il interprète la classe comme cela : accepter tt les Alphanumériques et retourner True si au moins un caractère alphanumérique est détecté.
Donc on va résoudre le problème de l'ordre mais pas celui de valider le mot de passe si et seulement si un mélange de caractère [a-z],[A-Z] et [0-9] est détecté. :-)
2 nov. 2015 à 19:07
Modifié par FeelZoR le 2/11/2015 à 19:10
Et ensuite tu vérifies que les 3 regex soient valides, le seul problème est que le mot de passe sera de 3 caractères minimum... et cette technique est un peu lourde, les noms de variable non explicites.. enfin, tu pourrais peut-être trouver mieux.
Bonne soirée :3
Modifié par [Dal] le 2/11/2015 à 22:18
@Syrano: Je n'avais pas saisi tes contraintes, qui effectivement semblent logiques.
Pour cumuler les critères, tu dois utiliser les "look-ahead" permis par les regexp compatibles Perl.
permet de "regarder" en avant, en vérifiant que l'expression matche bien, mais sans consommer les caractères.
Du coup, la succession d'expressions est effectivement cumulée.
Dal
2 nov. 2015 à 23:23