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在合并来进行替换,思路非常巧妙。