Je les règles suivantes pour la validation du mot de passe:Regex validation de mot de passe pour ensemble de règles
- au moins 8 caractères
- au moins 1 lettre majuscule
- au moins 3 lettre minuscule
- au moins 1 nombre
- au moins 1 caractère spécial
- le caractère de début doit être une lettre (majuscule ou minuscule)
- maximum 2 caractères identiques dans la rangée (par exemple, Passs123! devrait être invalide, mais sPass123! valide)
J'ai essayé de trouver modèle regex pour ces règles, et le plus proche est celle-ci:
/^(?=.*[0-9]) (?=.*[[email protected]#$%^&*]) (?=.*[a-z]) (?=.*[A-Z]) {8} $/
mais il ne fonctionne pas pour toutes les règles.
Je suis novice dans les expressions régulières, et j'apprécierais toutes les ressources pour apprendre la regex.
La condition "3 lettres minuscules" ne fonctionne pas. 'PASS123! 'correspond à regexp. – ikleschenkov
@ikleschenkov Cela fonctionne, cela ne fonctionne pas dans la démo uniquement à cause de la construction '[^ a-z]' qui correspond aussi aux nouvelles lignes. Voici un lien plus approprié - https://regex101.com/r/g4gptV/2, où '[^ a-z]' est transformé en '[\ \ na-z]' juste parce que la démo contient une seule chaîne mutliline. Dans un scénario réel, ces lignes sont des chaînes autonomes. –
@ WiktorStribiżew J'apprends beaucoup de vos solutions. +1 pour toujours l'expliquer bien :-) – Gurman