這是怎麼改進的,因爲它涉及到循環和正則表達式替換?JavaScript:重構循環正則表達式
var properties = { ... };
var template = element.innerHTML;
for (var name in properties) {
template = template.replace
(new RegExp('\\${' + name + '}', 'gm'), properties[name]);
}
element.innerHTML = template;
有沒有一種方法,我可以得到/\$\{\w+\}/gm
的所有比賽,並只使用那些建立一個新的字符串,一次是爲整個操作?
我不明白函數(x,y)部分。 RegEx()的第二個參數是模式的標誌,而replace()的第二個參數是返回的新字符串。 – JamesBrownIsDead 2010-02-12 03:44:25
替換的第二個參數可選地是一個轉換函數 – Jimmy 2010-02-12 03:45:41
您可能想要返回屬性[y] || Ÿ;如果你想保留任何未被識別的符號 – Jimmy 2010-02-12 03:48:12