J'essaie de supprimer tous les caractères non alphanumériques, sauf pour les virgules, les tirets et les citations simples. Je sais comment supprimer tous les mots non d'une chaîne, c.-à-d.
myString.replace(/\W/g,'');
Mais comment je le fais à l'exception de -
et '
? j'ai essayé
myString.replace(/\W+[^,]/g,'');
Parce que je sais comment nier l'utilisation de l'opérateur ^
, tout en ayant du mal à combiner le regex.
Toute aide est appréciée. Merci.
\w
est l'inverse de \W
, donc vous pouvez simplement utiliser /[^\w,'-]/
EDIT: dans le cas où le trait de soulignement n'est pas souhaité: /[^\w,'-]|_/
La classe de caractères suivante correspond à un seul caractère qui appartient à la classe de lettres, de chiffres, de virgule, de tiret et de citation unique.
[-,'A-Za-z0-9]
Ce qui suit correspond à un personnage qui n'est pas l'un de ces:
[^-,'A-Za-z0-9]
Alors
var stripped = myString.replace(/[^-,'A-Za-z0-9]+/g, '');