Je voudrais supprimer tous les caractères spéciaux (à l'exception des nombres) d'une chaîne. J'ai pu aller jusqu'ici
var name = name.replace(/[^a-zA-Z ]/, "");
mais il semble que cela supprime le premier nombre et laisse tous les autres.
Par exemple:
name = "collection1234"; //=> collection234
ou
name = "1234567"; //=> 234567
Utilisez le drapeau global:
var name = name.replace(/[^a-zA-Z ]/g, "");
^
Si vous ne souhaitez pas supprimer de nombres, ajoutez-les à la classe:
var name = name.replace(/[^a-zA-Z0-9 ]/g, "");
Pour supprimer les caractères spéciaux, essayez
var name = name.replace(/[!@#$%^&*]/g, "");
Si cela ne vous dérange pas d'inclure le trait de soulignement comme caractère autorisé, vous pouvez simplement essayer
result = subject.replace(/\W+/g, "");
Si le trait de soulignement doit également être exclu, alors
result = subject.replace(/[^A-Z0-9]+/ig, "");
(Notez l'indicateur insensible à la casse)
Cela devrait fonctionner aussi bien
text = 'la voiture? était grand et * rouge!
newtext = re.sub ('[^ a-z0-9]', '', texte)
print (newtext)
la voiture était grosse et rouge