2010-01-20 7 views
1

lorsque j'essaie ce qui suit cela ne fonctionne pas: str.replace("| stuff", "")JavaScript Remplacer la chaîne par un caractère |

Mais si j'enlève le PIPE c'est le cas? str.replace("stuff", "")

Pourquoi la fonction JS n'autorise-t-elle pas le PIPE | ? Que puis-je faire pour remplacer un tuyau?

+0

qu'est-ce que str, quel est votre résultat, et qu'essayez-vous d'accomplir? – peller

Répondre

1

est-il pas

"xyz| stuff".replace("\| stuff", ""); //returns xyz 
+3

que backslash n'a aucun effet – peller

5

Parce que .replace accepte un RegExp et | est un caractère spécial dans RegExp. Vous devez y échapper.

Par exemple, utilisez str.replace(/\|/g, "") pour supprimer tous les caractères |.

+0

Merci, mais je veux remplacer la chaîne suivante "| stuff" Il y aura juste un tuyau, comment puis-je remplacer les deux? – AnApprentice

+0

une regexp n'a pas été utilisé dans l'exemple dans la question, donc pas besoin d'y échapper – peller

3

Non, il devrait fonctionner, sauf si vous utilisez /| stuff/ ou RegExp("| stuff") au lieu de "| stuff"

"xyz| stuff".replace("| stuff", ""); //returns xyz 
+0

+1 Vous avez absolument raison. J'aurais dû tester avant de répondre. –

+0

cela ne fonctionne pas .... – AnApprentice

+0

Dans quel navigateur? – YOU

1

str.replace("| stuff", "") devrait fonctionner, mais ne remplacera la première occurrence. Si vous voulez tous les remplacer, essayez d'utiliser une regex comme str.replace(/\|\sstuff/g, "")

+0

Ou juste 'str.replace (/ \ | stuff/g," ")', mais le 's 'le fait fonctionner pour tout caractère d'espace –

+0

+1 - great - thanks! – adrianos

Questions connexes