
Envoyé par
Bovino
Il y a d'autres caractères à échapper

Pas d'accord.
Il y'avait 2 choses à changer :
- Echapper le caractère "\" dans la chaîne de caractère ET dans la regex :
e = new RegExp('^[+-/* =><.,():$%";?&\\\\0-9A-Za-z]*$',"g");
- Mettre le symbole "-" à la fin de la classe (ou l'échapper en effet) :
e = new RegExp('^[+/* =><.,():$%";?&\\\\0-9A-Za-z-]*$',"g");
Tout le reste était bon. 
Ceci dit, en dehors des classes (ce qui est entre crochet "[" et "]"), il est effectivement nécessaire d'échapper les caractères suivants :
., +, *, ?, \, /, (, ), [, ], {, }, ^, $
Dans les classes, les seuls caractères qui ont du "sens" sont "\" et "-" (sauf quand ce dernier est placé à la fin de la classe).
Ceci dit, en écrivant la regex sous forme de regex (comme l'a fait Bovino) et non de String, tu n'as plus besoin d'échapper le "\" dans la chaîne de caractère mais seulement dans la regex :
e = /^[/+* =><.,():$%";?&\\0-9A-Za-z-]*$/g;
Partager