2010-03-19 93 views
2

我在更改JavaScript中的圓括號標記時遇到問題。我試着這樣做:如何在javascript字符串中替換圓括號標記

var K = 1; 
var Text = "This a value for letter K: {ValueOfLetterK}"; 
Text = Text.replace("{ValueOfLetterK}", K); 

之後,我得到:

Text = "This a value for letter K: {ValueOfLetterK}" 

什麼可以做,以使這項工作?當我刪除圓括號時,它工作正常。

+0

它適用於我在IE和Firefox - 你在哪個瀏覽器中測試過? – 2010-03-19 09:12:45

回答

1

要替換多個出現,則需要使用「G」正則表達式(=全局)切換

Text = Text.replace(/{ValueOfLetterK}/g, K); 

如果你正在尋找一個更通用的方法來替換佔位符字符串,這是如何做到這一點:

var myVars = { A: 1, B: 2 }; 
var Text = "This a value for a {valueOfA} and b {valueOfB} and a again {valueOfA}"; 
Text = Text.replace(/{valueOf(\w+)}/g, function() { 
    var varName = arguments[1]; 
    return myVars[varName]; 
}); 

alert(Text) 
0

它爲我在Chrome和Firefox ...嘗試逃避花括號,看看會發生什麼:

Text = Text.replace("\{ValueOfLetterK\}", K); 
+0

啊,是的,它只是取代了第一封信。謝謝 – 2010-03-19 09:23:14

0

我沒有看到你的代碼任何問題。我在Firefox和IE中試過了,它對我很有用。讓我知道女巫瀏覽器正在使用。

<html> 
<head> 
<script> 
var K = 1; 
var Text = "This a value for letter K: {ValueOfLetterK}"; 
Text = Text.replace("{ValueOfLetterK}", K); 
alert(Text) 
</script> 

</head><body> 
    </body> 

    </html> 
相關問題