使用模板:
<div id="temp" style="display:none;">
<h3>{title}</h3>
<p>{body}</p>
</div>
脚本(jquery版本):
var html = $('#temp').html();
var vals = {"title":"Hello","body":"Good bye!"};
html = html.replace(/{(.+?)}/g, vals["$1"]); // this works if replaced with code below
我的替代品未定义
下面的代码可行,但似乎它应该与上面尝试的一行一起使用
matches = html.match(/{(.+?)}/g);
for(m=0;m<matches.length;m++){
var match=matches[m].replace("{","").replace("}", "");
html = html.replace(matches[m],vals[match])
}
可以根据需要进行简化吗?
这对于模板引擎来说太简单了,所以不需要去那里。
答案 0 :(得分:2)
您可以使用回调作为String.replace()
的第二个参数:
var result = html.replace(/{(.+?)}/g, function(c, m) { return vals[m]; });