javascript替换为子匹配作为数组索引

javascript替换为子匹配作为数组索引,javascript,Javascript,使用模板: <div id="temp" style="display:none;"> <h3>{title}</h3> <p>{body}</p> </div> 我的替代品没有定义 下面的代码可以工作,但似乎应该使用上面尝试的一行代码 matches = html.match(/{(.+?)}/g); for(m=0;m<matches.length;m++){ var match=ma

使用模板:

<div id="temp" style="display:none;">
    <h3>{title}</h3>
    <p>{body}</p>
</div>
我的替代品没有定义

下面的代码可以工作,但似乎应该使用上面尝试的一行代码

matches = html.match(/{(.+?)}/g);  
for(m=0;m<matches.length;m++){
    var match=matches[m].replace("{","").replace("}", "");
    html = html.replace(matches[m],vals[match])
}
matches=html.match(/{(+?)}/g);

对于(m=0;m,您可以使用callback作为以下参数的第二个参数:


@mplungjan是的,这就是为什么我删除了我的答案:(@mplungjan这是因为
vals
中没有属性
$1
,传递给
replace
的结果值将是
未定义的
。回调像champ一样工作,谢谢!
matches = html.match(/{(.+?)}/g);  
for(m=0;m<matches.length;m++){
    var match=matches[m].replace("{","").replace("}", "");
    html = html.replace(matches[m],vals[match])
}
var result = html.replace(/{(.+?)}/g, function(c, m) { return vals[m]; });