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

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

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

我有一根绳子:"Test abc test test abc test test test abc test test abc"做str = str.replace('abc', '');似乎只删除了abc在上面的绳子里。我怎么才能取代全它的发生?
查看完整描述

3 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

str = str.replace(/abc/g, '');

在答复意见时:

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

注:正则表达式包含特殊(元)字符,因此盲目地在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-07-13
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

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

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

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

一般的模式是

str.split(search).join(replacement)

在某些情况下,这比使用replaceAll还有一个正则表达式,但在现代浏览器中似乎不再是这样了。因此,这实际上应该仅作为一种快速攻击来使用,以避免需要转义正则表达式,而不是在实际代码中。


查看完整回答
反对 回复 2019-07-13
  • 3 回答
  • 0 关注
  • 598 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信