-3

html 模板在通过我的代码运行后以 {@bigfoot} 开头,它是 {*bigfoot}

看看第二个正则表达式是如何在第一个正则表达式之前完成的?为什么?

html = html.replace(new RegExp("{@" + prop + "}", "g"), object[prop]);
html = html.replace(new RegExp("@", "g"), "*");
4

2 回答 2

1

我创建了这个:http: //jsfiddle.net/kxTs5/,但我无法重现您的问题。

然后我创建了这个http://jsfiddle.net/kxTs5/2/;做到了:o)

在第二个例子中,我prop可能是一个错字,或者什么,但它指的是文本中不存在的东西,所以没有匹配,所以没有变化。

我建议您自由使用console.log以确保您尝试匹配您认为匹配的内容

于 2012-07-13T15:17:05.883 回答
-1

第一个表达式不正确。

花括号在正则表达式中用于指定给定捕获模式的特定重复计数。

要匹配花括号,您应该转义它们。

html = html.replace(new RegExp("\\{@" + prop + "\\}", "g"), object[prop]);
于 2012-07-13T14:33:51.507 回答