JavaScript(js)如何替换字符串中出现的所有子字符串呢?
1.76K 次浏览
3 个回答
-
对于老旧的浏览器,可以在
replace()
函数的搜索字符串参数中加上/g
,示例如下:str = str.replace(/abc/g, '');
或者,使用
RegExp()
对象,如下:var find = 'abc'; var re = new RegExp(find, 'g'); str = str.replace(re, '');
或者,创建一个替换所有出现的字符串的函数,如下:
function replaceAll(str, find, replace) { return str.replace(new RegExp(find, 'g'), replace); }
如果需要考虑特殊字符串的话,则要对 特殊字符串进行转义,函数如下:
function escapeRegExp(string) { return string.replace(/[.*+\-?^${}()|[\]\\]/g, '\\$&'); }
那么,以上的
replaceAll()
函数可以重写成如下方式:function replaceAll(str, find, replace) { return str.replace(new RegExp(escapeRegExp(find), 'g'), replace); }
-
以下是在
String
类型的原型上使用RexExp
实现的replaceAll
方法:String.prototype.replaceAll = function(search, replacement) { var target = this; return target.replace(new RegExp(search, 'g'), replacement); };
以下是使用
Split
和Join
函数实现的replaceAll
原型方法:String.prototype.replaceAll = function(search, replacement) { var target = this; return target.split(search).join(replacement); };