2010-03-19 159 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> 
相关问题