J'ai une chaîne comme celle-ci:
var str = "I'm a very^ we!rd* Str!ng.";
Ce que je voudrais faire est de supprimer tous les caractères spéciaux de la chaîne ci-dessus et de remplacer les espaces et, au cas où ils seraient dactylographiés, les traits de soulignement, avec un - caractère.
La chaîne ci-dessus ressemblerait à ceci après la "transformation":
var str = 'im-a-very-werd-strng';
replace(/[^a-z0-9\s]/gi, '')
va filtrer la chaîne en valeurs alphanumériques et replace(/[_\s]/g, '-')
remplacera les traits de soulignement et les espaces par des tirets:
str.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '-')
Source pour Regex: RegEx pour Javascript afin de permettre uniquement alphanumérique
Voici une démo: http://jsfiddle.net/vNfrk/
En supposant que vous entendez par "spécial" des caractères autres que Word, c'est très simple.
str = str.replace(/[_\W]+/g, "-")
str.toLowerCase().replace(/[\*\^\'\!]/g, '').split(' ').join('-')
Supprimez les chiffres, les traits de soulignement, les espaces et les caractères spéciaux de la phrase.
str.replace(/[0-9`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi,'');
Comme je ne peux pas commenter la réponse de Jasper, j'aimerais signaler un petit bug dans sa solution:
str.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '-');
Le problème est que le premier code supprime tous les traits d'union, puis tente de les remplacer :) Vous devez inverser les appels de remplacement et ajouter un trait d'union pour remplacer l'autre expression rationnelle. Comme ça:
str.replace(/[_\s]/g, '-').replace(/[^a-z0-9-\s]/gi, '');
Supprimer/Remplacer tous les caractères spéciaux dans Jquery:
Sistr = Mon nom est "Ghanshyam" et de "Java" background
et voulez supprimer tous les caractères spéciaux (") puis utilisez-le
str = str.replace (/ "/ g, '')
result: Je m'appelle Ghanshyam et viens de Java
Où g signifie Global @Merci