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