Javascript fonction de match pour les caractères spéciaux
Je suis en train de travailler sur ce code et à l'aide de "match" de la fonction pour détecter la force de mot de passe. comment puis-je détecter si la chaîne contient des caractères spéciaux?
if(password.match(/[a-z]+/)) score++;
if(password.match(/[A-Z]+/)) score++;
if(password.match(/[0-9]+/)) score++;
Tout ce qui n'est pas une lettre ou un nombre serait un caractère spécial match.
OriginalL'auteur Aajiz | 2012-02-10
Vous devez vous connecter pour publier un commentaire.
Si tu veux dire !@#$% et ë comme caractère spécial que vous pouvez utiliser:
La
^
les moyens, si ce n'est pas quelque chose comme a-z ou a-Z ou un espace.Et si vous voulez dire que des choses comme !@$&$ utilisation:
\w
matchs de caractères de mot,\W
correspondant pas les caractères de mot.OriginalL'auteur Wouter J
Vous aurez à la liste blanche individuellement, comme suit:
et ainsi de suite. Notez que vous devrez échapper regex caractères de contrôle avec un
\
.Bien que moins élégant que
/[^A-Za-z0-9]+/
, cela permettra d'éviter les problèmes relatifs à l'internationalisation (par exemple, ne sera pas automatiquement de la liste blanche d'Extrême-Orient caractères d'une Langue comme le Chinois ou le Japonais).OriginalL'auteur Edwin
vous pouvez toujours nier le caractère de classe:
Cependant, je te suggère d'utiliser un script. Avec le code ci-dessus, vous tapez juste un tas d'espaces, et d'obtenir un meilleur score.
OriginalL'auteur Flambino
Il suffit de faire ce que vous avez fait ci-dessus, mais de créer un groupe pour
!@#$%^&*()
etc. Juste être sûr pour échapper les caractères qui ont une signification en regex, comme^
et(
etc....EDIT -- Je viens de trouver ce qui répertorie les caractères qui ont une signification en regex.
OriginalL'auteur hvgotcodes
Cela va correspondre à tout ce qui n'est pas alphanumérique ou le vide de l'espace. Si les espacements doivent correspondre trop, il suffit d'utiliser
/[^\w]/
.OriginalL'auteur mgibsonbr
Comme il l'air de votre regex, vous appelez tout, sauf pour alphanumériques un caractère spécial. Si c'est le cas, il suffit de faire.
De toute façon, comment pourquoi ne pas combiner ces trois regex dans un.
OriginalL'auteur karora