废话不多说,直接上代码
String.prototype.replaceAll = function ()
{
var args = arguments;
var searchValue=args[0];
var newValue = args[1];
//如果搜索的字符与替换的新字符有不存在的,则不做任何操作,返回原字符串
if(!searchValue || !newValue) return this.toString();
var regParam="g";
if(searchValue instanceof RegExp){//如果是正则,需判断是否传入 g i m等标示
//global: true //不用处理,默认就是全局
searchValue.ignoreCase?(regParam+="i"):null;
searchValue.multiline?(regParam+="m"):null;
}
//这里用到了正则的构造函数
var reg = new RegExp(searchValue,regParam);
return this.replace(reg,newValue);
}
var str="hello world! Hello man! hello god!";
console.log(str.replaceAll(/hello/gi,"hi"));
console.log(str.replaceAll("hello","hi"));
结果:
hi world! hi man! hi god!
hi world! Hello man! hi god!
这里是支持传入字符和正则两种方式的,我个人更喜欢用正则的,哈哈!
请留言!!!!欢迎指正交流!