javascript用submatch替换为数组索引

时间:2013-01-21 17:23:15

标签: javascript

使用模板:

<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])
}

可以根据需要进行简化吗?

这对于模板引擎来说太简单了,所以不需要去那里。

1 个答案:

答案 0 :(得分:2)

您可以使用回调作为String.replace()的第二个参数:

var result = html.replace(/{(.+?)}/g, function(c, m) { return vals[m]; });