web-dev-qa-db-fra.com

jQuery supprime les caractères spéciaux de la chaîne et plus

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';
50
Roel

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/

107
Jasper

En supposant que vous entendez par "spécial" des caractères autres que Word, c'est très simple.

str = str.replace(/[_\W]+/g, "-")
23
Ilia G
str.toLowerCase().replace(/[\*\^\'\!]/g, '').split(' ').join('-')
13
Grace Shao

Supprimez les chiffres, les traits de soulignement, les espaces et les caractères spéciaux de la phrase.

str.replace(/[0-9`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi,'');

Démo

1
Pawan Singh Bisht

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, '');
1
Marko Sulamä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

0
ghanshyam singh