web-dev-qa-db-fra.com

conserver uniquement A-Z 0-9 et supprimer les autres caractères de la chaîne à l'aide de javascript

j'essaie de vérifier les chaînes pour créer des URL valides

je dois seulement garder A-Z 0-9 et supprimer les autres caractères de la chaîne en utilisant javascript ou jquery

par exemple :

Restaurant Belle's

j'ai besoin de le convertir en:

Belle-s-Restaurant

donc les caractères sont supprimés et seuls A-Z a-z 0-9 sont conservés

merci

41
M.E

En ajoutant notre méthode .cleanup() à l'objet String lui-même, vous pouvez ensuite nettoyer n'importe quelle chaîne en Javascript simplement en appelant une méthode locale, comme ceci:

# Attaching our method to the String Object
String.prototype.cleanup = function() {
   return this.toLowerCase().replace(/[^a-zA-Z0-9]+/g, "-");
}

# Using our new .cleanup() method
var clean = "Hello World".cleanup(); // "hello-world"

Parce qu'il y a un signe plus à la fin de l'expression régulière, il correspond à un ou plus caractères. Ainsi, la sortie aura toujours un '-' pour chaque série d'un ou plusieurs caractères non alphanumériques:

# An example to demonstrate the effect of the plus sign in the regular expression above
var foo = "  Hello   World    . . .     ".cleanup(); // "-hello-world-"

Sans le signe plus, le résultat serait "--hello-world--------------" pour le dernier exemple.

57
Sampson

Ou ceci si vous vouliez mettre des tirets à la place d'autres caractères:

string.replace(/[^a-zA-Z0-9]/g,'-');
5
Nicolás

En supposant que la chaîne est conservée dans une variable appelée BizName:

BizName.replace(/[^a-zA-Z0-9]/g, '-');

BizName ne devrait désormais impliquer que les caractères demandés.

2
TodPunk