2010-01-20 156 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