2014-10-01 30 views
0

我正在使用javascript工作,但我堅持一個問題。 當我嘗試將幾個.replace命令連接在一起時,我沒有得到預期的輸出。我不使用任何像Jquery這樣的庫。Javascript string.replace。結合幾個.replace命令

var str = ('abc abc'); 
str = str.replace(/a/g, 'b').replace(/b/g, 'c'); 

alert(str); 

用我的代碼,我得到這個輸出:ccc ccc。當我應該得到這個:密件抄送密件抄送。

任何人都可以看到我做錯了什麼?

最好的問候,來自挪威學生:)

+2

切換它們。 – elclanrs 2014-10-01 00:33:23

+0

謝謝!它的工作:) – user2926446 2014-10-01 00:43:21

+0

你*應*得到的是你得到的。 ;-)你想得到的東西可能會有所不同。 :-o – RobG 2014-10-01 00:45:16

回答

1

像@elclarns說,切換替換功能,所以你用C首先更換灣

str = str.replace(/b/g, 'c').replace(/a/g, 'b'); 
+0

感謝這個例子!你能解釋爲什麼它是這樣嗎? – user2926446 2014-10-01 00:44:18

+0

@ user2926446,因爲上面的代碼執行從左到右。第二次替換被第一次替換的結果調用。 – cbayram 2014-10-01 02:15:41