3 回答

TA贡献1804条经验 获得超7个赞
str = str.replace(/abc/g, '');
回应评论:
var find = 'abc';
var re = new RegExp(find, 'g');
str = str.replace(re, '');
在回应Click Upvote的评论时,您可以进一步简化它:
function replaceAll(str, find, replace) {
return str.replace(new RegExp(find, 'g'), replace);
}
注意:正则表达式包含特殊(元)字符,因此盲目传递上述函数中的参数find而不预先处理它以逃避这些字符是危险的。这在Mozilla开发者网络的正则表达式JavaScript指南中有所介绍,它提供了以下实用程序功能:
function escapeRegExp(str) {
return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
}
因此,为了使上述replaceAll()功能更安全,如果您还包括以下内容,可将其修改为以下内容escapeRegExp:
function replaceAll(str, find, replace) {
return str.replace(new RegExp(escapeRegExp(find), 'g'), replace);
}

TA贡献1826条经验 获得超6个赞
注意:不要在实际代码中使用它。
作为简单文字字符串的正则表达式的替代,您可以使用
str = "Test abc test test abc test...".split("abc").join("");
一般模式是
str.split(search).join(replacement)
在某些情况下,这比使用replaceAll和正则表达式更快,但在现代浏览器中似乎不再是这种情况。因此,这应该只是用作快速入侵,以避免需要转义正则表达式,而不是真正的代码。
添加回答
举报