2012-04-23 56 views
0

如何更換所有\""在一個字符串如何更換所有」在JS字符串

我試過了,但它不會工作:??var foobar = ("foo\\\"bar\\\"foo").replace(/"\\\""/,'"');

結果是foo\"bar\"foo,但它應該是foo"bar"foo

回答

5

您不需要在RegEx模式中使用引號,//分隔符作爲一個。

var foobar = "foo\\\"bar\\\"foo".replace(/\\"/g,'"'); 

適合我。

5

嘗試.replace(/\\"/g,'"'); - 正則表達式不需要他們周圍的報價,我很驚訝你得到任何結果都

+5

那麼,爲什麼不呢?他試圖替換原始字符串中不存在的東西,所以他只是將其恢復爲未修改狀態。 – 2012-04-23 15:01:48

+0

這就是我的意思,但由於某種原因,我沒有輸入> _> – 2012-04-23 15:04:30

3

你的報價是錯誤的,你不USI。 ng g - 全局標誌。它應該是:

var foobar = ("foo\\\"bar\\\"foo").replace(/\\"/g,'"'); 
3

嘗試定義它像這樣

var foobar = ("foo\\\"bar\\\"foo").replace(/"\\\""/g,'"'); 

注意,.replace/g這使得全球

+0

這將失敗。正則表達式模式沒有引號。 – 2012-04-23 15:07:31

5

你需要修復你的正則表達式,你需要做的

replace(/\\\"/g, "\"") 
+0

請正確格式化您的代碼。通過在任何代碼行之前縮進4個空格來插入代碼塊。我這次爲您編寫了代碼格式,但下次請正確格式化。有關更多幫助,請參閱[編輯常見問題](http://stackoverflow.com/editing-help#code) – 2012-04-23 15:06:22

+0

此外,這將失敗。請再次閱讀OP的問題。 – 2012-04-23 15:06:51

+0

這爲什麼會失敗?我在發佈之前嘗試過,它可以正常工作。 – slowpoison 2012-04-23 15:15:25

1

jsfiddle

// initial string 
var str = "AAAbbbAAAccc"; 

// replace here 
str = str.replace(/A/g, "Z"); 
alert(str); 
​ 
+0

這是什麼? – 2012-04-23 15:06:06

+0

爲什麼在這一個投票呢?它取代了「Z」的「A」,並顯示瞭如何使用「替換」... – MilkyWayJoe 2012-04-23 15:10:37

+0

@MilkyWayJoe:將鼠標懸停在downvote圖標上,「這個答案沒有用」是啊,幾乎總結了它。雖然它確實顯示了「str.replace()」的正確使用,但事實上它並不以任何方式幫助OP。 – 2012-04-23 15:16:27

相關問題