2010-01-20 196 views
1

当我尝试以下它不起作用:str.replace("| stuff", "")JavaScript用字符替换字符串|

但是,如果我删除PIPE它呢? str.replace("stuff", "")

为什么JS功能不允许PIPE | ?我能做些什么来做替换,包括管道?

+0

这样的正则表达式什么是结果,结果是什么,以及你想要达到什么目的? – peller 2010-01-20 06:03:39

回答

1

是不是很

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

反斜杠没有效果 – peller 2010-01-20 06:01:25

5

因为.replace接受RegExp,而|是RegExp中的一个特殊字符。你需要逃避它。

例如,使用str.replace(/\|/g, "")删除每个|字符。

+0

谢谢,但我想替换下面的字符串“|东西”只会有一个管道,我怎么可以替换两个? – AnApprentice 2010-01-20 05:42:38

+0

在问题的例子中没有使用正则表达式,所以不需要转义它 – peller 2010-01-20 06:02:55

3

不,应该是工作,除非你使用的/| stuff/RegExp("| stuff")代替"| stuff"

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

+1你是完全正确的。我应该在回答之前进行测试。 – 2010-01-20 05:43:09

+0

它不起作用.... – AnApprentice 2010-01-20 05:43:32

+0

在哪个浏览器中? – YOU 2010-01-20 05:48:08

1

str.replace("| stuff", "")应该工作,但只会替换第一次出现。如果你想要替换所有这些,请尝试使用像str.replace(/\|\sstuff/g, "")

+0

或者只是'str.replace(/ \ | stuff/g,“”)',但是'\ s'使它适用于任何空格字符 – 2010-01-20 06:13:10

+0

+1 - 非常感谢! – adrianos 2010-10-08 09:27:35