为了账号安全,请及时绑定邮箱和手机立即绑定

如何在JavaScript中替换所有出现的字符串

如何在JavaScript中替换所有出现的字符串

森林海 2019-05-21 15:44:25
如何在JavaScript中替换所有出现的字符串我有这个字符串:"Test abc test test abc test test test abc test test abc"干str = str.replace('abc', '');似乎只删除了abc上面字符串中的第一次出现。如何更换所有出现的内容?
查看完整描述

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);

}


查看完整回答
反对 回复 2019-05-21
?
跃然一笑

TA贡献1826条经验 获得超6个赞

注意:不要在实际代码中使用它。


作为简单文字字符串的正则表达式的替代,您可以使用


str = "Test abc test test abc test...".split("abc").join("");

一般模式是


str.split(search).join(replacement)

在某些情况下,这比使用replaceAll和正则表达式更快,但在现代浏览器中似乎不再是这种情况。因此,这应该只是用作快速入侵,以避免需要转义正则表达式,而不是真正的代码。


查看完整回答
反对 回复 2019-05-21
  • 3 回答
  • 0 关注
  • 1079 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号