如何在javascript字符串中替换圆括号标记

时间:2010-03-19 09:06:28

标签: javascript string

我在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}"

可以做些什么来完成这项工作?当我删除圆括号时,它工作正常。

3 个答案:

答案 0 :(得分:1)

要替换多个匹配项,需要使用带有'g'(= global)开关

的正则表达式
 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)

答案 1 :(得分:0)

它适用于Chrome和Firefox ...尝试逃避花括号,看看会发生什么:

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

答案 2 :(得分: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>