relaceAll
js的字符串全局替换功能。有几种实现方式。以及各种的优缺点:
资源
https://blog.csdn.net/fukaiit/article/details/83245943
例子
tpl_:function(data,str){
var fields = str.match(/\{\w+\}/g);
if(fields){
for(var i=0;i< fields.length;i++){
var field = fields[i].substr(1,fields[i].length-2);
// 解析的 {var}
// data[field] && (str = str.replace(new RegExp(fields[i],"g"),data[field]));
// data[field] && (str = str.replaceAll(fields[i],data[field]));
data[field] && (str = str.split(fields[i]).join(data[field]));
}
}
上面展示了3种全局替换模式,其中replaceAll可能在低版本的浏览器上并不支持。
使用了正则表达时,来进行替换。但是正则的内容如果是:{0}这种数字格式,则会出现报错。而先split在合并来进行替换,思路非常巧妙。