2011-11-28 5 views
2

J'essaie d'utiliser le RegExp suivant pour valider un mot de passe entré dans mon formulaire;Erreur: quantificateur invalide - RegExp dans JavaScript

8-12 caractères avec au moins 1 majuscule, 1 caractère numérique, 1 caractère spécial de @ # $! & *

^(?=.*[\d])(?=.*[a-z])(?=*[A-Z])(?=*[@#$!&*]).{8,12}$ 

Quand je rentre dans ma fonction JavaScript, il jette une erreur « quantificateurs invalide »

Je suis assez nouveau pour JavaScript et RegExp, donc cela pourrait être une question assez simple, mais Si quelqu'un a des conseils sur les endroits où je pourrais être incorrect ou mal orienté, j'apprécierais beaucoup!

Merci :)

Répondre

4

Votre utilisation de (?=* ...) pour les caractères majuscules et spéciales exigences manquent un caractère ou métacaractère pour la * quantificateurs à appliquer à. Dans de tels modèles, comme avec vos autres exemples, il devrait s'agir d'un point.

Avec cette mise à jour, le modèle complet est:

^(?=.*[\d])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$!&*]).{8,12}$ 
+0

Omg. Duh. Désolé, les fautes de frappe seront la mort de moi. Merci! – beckalyce

+0

@beckalyce pas de problème! En remarque, vous pouvez utiliser '\ d' au lieu de' [\ d] 'car il est redondant pour l'inclure dans une classe de caractères. –

0

Un * a besoin de quantifier quelque chose. Mettez quelque chose qui le précède pour quantifier.

Questions connexes