replaceAll 实现字符串替换全部方法

发表日期:2021-07-01 15:08:40 | 来源: | | 浏览(846) 分类:页面相关

//最新的谷歌等浏览器内核内置了replaceAll 方法,如果没有的话使用自己实现的
if (typeof String.prototype.replaceAll !== "function"){
    String.prototype.replaceAll = function (reg, str) {
        var flags = 'g';
        if (Object.prototype.toString.call(reg).toLowerCase() === '[object regexp]') {
            // 传入的是正则
            if (reg.global) {
                return this.replace(reg, str);
            } else {
                flags += (reg.ignoreCase ? 'i' : '') + (reg.multiline ? 'm' : '');
                reg = reg.source;// 获取正则源码
            }
        } else {
            reg = reg.replace(/([\*\[\]\{\}\-])/g, "\\$1");
        }
        return this.replace(new RegExp(reg, flags), str);
    }
}


集速网 copyRight © 2015-2022 宁ICP备15000399号-1 宁公网安备 64010402001209号
与其临渊羡鱼,不如退而结网
欢迎转载、分享、引用、推荐、收藏。