js中替换所有字符串的2种解决办法

js本身不提供replaceAll()方法的,所以要替换所有字符串需要自己写一个这样的方法,总结了网上几种写法如下:
方法一:

 

replaceAll的另一种写法,其实都差不多

//replaceAll的另一种写法,其实都差不多
String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) {  
    if (!RegExp.prototype.isPrototypeOf(reallyDo)) {  
        return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi": "g")), replaceWith);  
    } else {  
        return this.replace(reallyDo, replaceWith);  
    }  
} 

//补充,另一种简化的写法
var str = "dddd-dsss"
//替换中间的“-”,写法如下:
var newStr = str.replace(new RegExp('-', 'gm'), '');

结果:
js中替换所有字符串的2种解决办法_第1张图片
方法二:


结果:
js中替换所有字符串的2种解决办法_第2张图片
场景:
有一个很重要的场景会用到这个替换功能,那就是在实际开发中,后台返回的json字符串需要转化成json,但是直接转化会有失败的情况,原因是有些中文的字符串里有换行符,必须把换行符替换了才能格式化成功,格式化之前可以复制代码去网上在线json格式化工具校验试试就知道了
如下:

//替换json换行符操作
JSON.parse(myJson.replace(/\n/g, ""))

你可能感兴趣的:(json,js)