我在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 :(得分: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>