javascript - remplacer le tiret (trait d'union) avec un espace
J'ai été à la recherche pour cela un certain temps, et même si j'ai trouvé beaucoup de réponses pour le changement d'un espace dans un tiret (trait d'union), je n'ai pas trouvé tout ce que aller dans l'autre direction.
D'abord j'ai:
var str = "This-is-a-news-item-";
J'essaie de le remplacer par:
str.replace("-", ' ');
Et il suffit d'afficher le résultat:
alert(str);
Droit maintenant, cela ne sert à rien, donc je ne sais pas où se tourner. J'ai essayé d'inverser certaines de celles déjà existantes que de remplacer l'espace par le tableau de bord, et que cela ne fonctionne pas.
Merci pour l'aide.
- La chaîne n'est pas mutable, vous devez réaffecter le résultat.
Vous devez vous connecter pour publier un commentaire.
Ce fixe:
Il y avait deux problèmes avec votre code:
g
drapeau, "global", de sorte que toutes les instances seront remplacés.Je pense que le problème auquel vous êtes confronté est presque cela: -
Vous avez besoin de ré-attribuer le résultat du remplacement de
str
, à voir l'expression de la changer.De MSDN de référence Javascript: -
À remplacer tous les
-
, vous devez utiliser/g
modificateur avec une regex paramètre: --1
. 🙂replace()
renvoie une nouvelle chaîne, et la chaîne d'origine n'est pas modifié. Ce que vous devez fairestr = str.replace(/-/g, ' ');
pour remplacer toutes les occurrences du tableau de bord.J'ai trouvé que l'utilisation de str.remplacer les() ne remplacera le premier trait d'union, donc je boucle thru tandis que la chaîne d'entrée encore contenait des traits d'union, et de les remplacer tous.
http://jsfiddle.net/LGCYF/
En plus des réponses déjà données, vous voudrez probablement pour remplacer toutes les occurrences. Pour ce faire, vous aurez besoin d'une expression régulière comme suit :