web-dev-qa-db-fra.com

javascript regex pour les caractères spéciaux

J'essaie de créer une validation pour un champ de mot de passe qui n'autorise que les caractères a-zA-Z0-9 et .!@#$%^&*()_+-=.

Je n'arrive pas à comprendre.

Quelle est la différence en utilisant regex = /a-zA-Z0-9/g and regex = /[a-zA-Z0-9]/ et quels caractères de .!@#$%^&*()_+-= sont nécessaires pour être échappés?

Ce que j'ai essayé jusqu'ici, c'est:

var regex = /a-zA-Z0-9!@#\$%\^\&*\)\(+=._-/g

mais sans succès

24
Alon
var regex = /^[a-zA-Z0-9!@#\$%\^\&*\)\(+=._-]+$/g

Devrait marcher

Vous voudrez peut-être aussi avoir une longueur minimale de 6 caractères.

var regex = /^[a-zA-Z0-9!@#\$%\^\&*\)\(+=._-]{6,}$/g
39
Ed Heal

Quelle est la différence?

/[a-zA-Z0-9]/ est une classe de caractères qui correspond à un caractère qui est à l'intérieur de la classe. Il se compose de trois gammes.

/a-zA-Z0-9/ signifie la séquence littérale de ces 9 caractères.

Quels caractères de .!@#$%^&*()_+-= faut-il échapper?

Dans une classe de caractères, seuls le moins (si pas à la fin) et le circumflexe (si au début). .$^*+() a une signification particulière et doit être échappé pour correspondre à la lettre.

n'autorise que les caractères a-zA-Z0-9 et .!@#$%^&*()_+-=

Mettez-les ensuite dans une classe de caractères, laissez-les repeat et demandez-leur de faire correspondre toute la chaîne avec anchors :

var regex = /^[a-zA-Z0-9!@#$%\^&*)(+=._-]*$/
8
Bergi

une façon géniale de faire correspondre les caractères spéciaux:

/\W|_/g

\W Correspond à tout caractère autre que Word (alphanumérique et trait de soulignement). 

Le trait de soulignement est considéré comme un caractère spécial, donc Ajoutez un booléen pour correspondre à un caractère spécial ou _ 

6
TITO

Il y a quelques problèmes avec Regex écrit ci-dessus.

Cela fonctionne parfaitement.

^[a-zA-Z\d\-_.,\s]+$

Seuls les caractères spéciaux autorisés sont inclus ici et peuvent être étendus après une virgule.

4
Sanjeev Singh

Que dis-tu de ça:-

var regularExpression = /^(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{6,}$/;

Il permettra un minimum de 6 caractères, y compris des chiffres, des alphabets et des caractères spéciaux.

4
Rahul Tripathi

c'est la seule correspondance regex réelle:

/[-!$%^&*()_+|~=`{}[:;<>?,.@#\]]/g
1
chris_r
// Regex for special symbols

var regex_symbols= /[-!$%^&*()_+|~=`{}\[\]:\/;<>?,.@#]/;
1
Anil Singhania