全局替换为js

Global Replace with js

本文关键字:js 替换 全局      更新时间:2023-09-26

我有以下字符串:

[27564][85938][457438][273][48232]

我想用"替换所有的[。我尝试了以下操作,但没有成功:

 var str = '[27564][85938][457438][273][48232]'
 var nChar = '[';
 var re = new RegExp(nChar, 'g')    
 var visList = str.replace(re,'');

我在这里做错了什么?

非常感谢。

您需要转义[,否则它将被解释为字符类的开始:

var nChar = '''[';

如果nChar是一个变量(我假设它是另一个变量,那么使用RegExp而不是/.../g没有什么意义(,那么你可能会发现这个问题很有用:

  • Javascript中有RegExp.escape函数吗
var string = "[27564][85938][457438][273][48232]";
alert(string.replace(/'[/g, '')); //outputs 27564]85938]457438]273]48232]

我转义了[字符,并使用全局标志来替换该字符的所有实例。

我今天遇到了这个问题。要求替换用户输入字符串中的所有"c++"。因为"+"在Reg表达式中有含义,所以string.replacement失败。所以我为js字符串写了一个多替换函数。希望这能有所帮助。

String.prototype.mreplace = function (o, n) {
    var off = 0;
    var start = 0;
    var ret = "";
    while(true){
        off = this.indexOf(o, start);
        if (off < 0)
        {
            ret += this.substring(start, this.length);
            break;
        }
        ret += this.substring(start, off) + n;
        start = off + o.length;
    }
    return ret;
}

示例:"ababc".mreplace("a","a--"(;//返回"a--ba--bc">