1
我试图用新单词替换多个单词,每当我呈现HTML模板时。Javascript正则表达式用新单词替换多个单词
而是通过模板具有循环(这是相当大)三次,以寻找三个不同的话,我想通过模板结合三个字及其替代,只有一次循环。 (另外,显然下面的代码只替换最后一个单词{id},因为它覆盖了其他两个替换尝试)。
$.get('/templates/list-item.html', function(data) {
var template = data,
tmp = '';
$.getJSON('conf.json', function(data) {
var items = [],
list = data.default;
for (var item in list) {
var name = item.name,
value = list[item].value,
id = list[item].id;
tmp = template.replace('{name}', name);
tmp = template.replace('{value}', value);
tmp = template.replace('{id}', id);
items.push(tmp);
}
$('<div/>', {
html: items.join('')
}).appendTo('body');
});
});
显然呈现模板不应该与JS来完成,但由于它仅是供内部使用,没有后端可用,但并不需要通过谷歌进行索引,它的罚款暂且。
太棒了!您是否介意解释(/ {(\ w +)}/g实际上做了什么?非常感谢! – patad
使用$ .map()有什么好处?它比循环更快还是更容易阅读? – patad
'/{(\ w +)} /'是一个[正则表达式](http://www.javascriptkit.com/javatutors/re.shtml)。'map'更容易阅读并且可以防止[闭环](http:/ /stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example)trouble。 – georg