Bonjour à tous,

Je n'arrive pas à savoir pourquoi cette Regex de mot de passe ne fonctionne pas, elle est sensée contrôler :

-Au minimum 8 caractères

  • Une majuscule
  • Une minuscule
  • Un chiffre
  • Un caractère spécial

J'ai essayé sur regex101 et il me signale le no match dès le début si je prends par exemple "Coucou1!' ... Que fais-je mal ?

Merci


                    pattern: '^$S*(?=S{8,})(?=S*[a-z])(?=S*[A-Z])(?=S*[d])(?=S*[W])S*$',
                    match: true,
                    message: "Votre mot de passe doit comporter au moins huit caractères, dont des lettres majuscules et minuscules,ne pas contenir d'espace, et au moins un chiffre et un symbole !@#$%&*()-+=^."
                ),```

2 réponses


Compliqué la regex, attention parfois il y a des choses qui ne sont pas supporté par JS (donc regex101) mais je ne sais pas si c'est le cas ici.

Bonjour à tous et merci pour votre réponse...

En plus du fait que la pattern ne semble rien faire, j'observe que le mot de passe est hashé et quand même enregistré en bdd... Pourtant le formulaire utilise bien if() issubmitted() et isvalid() et j'ai le message d'erreur personnalisé affiché ...

Le formulaire n'étant pas validé pourquoi enregistre t'il quand même les données en bdd ? (J'utilise le security-bundle).
J'ai oublié de mentionner que je suis sous Symfony 6.2.

C'est bizarre non ?