J'utilise l'expression régulière suivante mon code Java.Utilisation d'une expression régulière pour la validation de mot de passe
^.*(?=.{6,20})(?=.*[a-z].*[a-z])(?=.*[A-Z])(?=.*[0-9]).*$
Quand je suis en train d'utiliser le même xml que
^.\*(\?=.{6,20})(\?=.\*[a-z].\*[a-z])(\?=.\*[A-Z])(\?=.\*[0-9]).\*$
Il ne fonctionne pas. Il montre l'exception comme ci-dessous.
java.lang.IllegalArgumentException: -cvc modèle valide: Valeur 'narendra1A' n'est pas facette valide par rapport à modèle «^* (\ = {} 6,20?.). (\? =. * [az]. * [az]) (\? =. * [AZ]) (\? =. * [0-9]). * $ 'pour le type ' #AnonType_passwordcreateUser '.
Quelqu'un peut-il aider à cet égard.
Merci,
Narendra
Non lié à la question, mais vous devez supprimer le premier '. *' Juste après le '^'. C'est inutile et rend votre regex très inefficace. En outre, si vous pensez que vous restreignez la longueur du mot de passe à 6-20 caractères, vous ne l'êtes pas. Une chaîne de 100 caractères passera cette regex très bien. –
Pourquoi y a-t-il une limite supérieure de 20 caractères? – Gumbo
@Gumbo: Peu importe, toute chaîne de plus de 5 caractères passera, si vous regardez l'expression régulière de près :) –