Javascript 全局替换为js

Javascript 全局替换为js,javascript,Javascript,我有以下字符串: [27564][85938][457438][273][48232] 我想将所有的[1]替换为“”。我尝试了以下操作,但无效: var str = '[27564][85938][457438][273][48232]' var nChar = '['; var re = new RegExp(nChar, 'g') var visList = str.replace(re,''); 我做错了什么 非常感谢。您需要退出[,否则它会被解释为一个: 如果nCha

我有以下字符串:

[27564][85938][457438][273][48232]
我想将所有的[1]替换为“”。我尝试了以下操作,但无效:

 var str = '[27564][85938][457438][273][48232]'
 var nChar = '[';
 var re = new RegExp(nChar, 'g')    
 var visList = str.replace(re,'');
我做错了什么


非常感谢。

您需要退出
[
,否则它会被解释为一个:

如果nChar是一个变量(我假设它是另一个变量,使用
RegExp
而不是
/…/g
),那么您可能会发现这个问题很有用:

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

我今天遇到了这个问题。 要求替换用户输入字符串中的所有“c++”。因为“+”在Reg表达式中有含义,所以string.replace失败。 所以我为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;
}
String.prototype.mreplace=函数(o,n){
var-off=0;
var start=0;
var ret=“”;
while(true){
off=这个索引of(o,开始);
如果(关闭<0)
{
ret+=this.substring(开始,this.length);
打破
}
ret+=此子字符串(开始、关闭)+n;
开始=关闭+o.长度;
}
返回ret;
}
例如:
“ababc”.mreplace(“a”,“a-”);//返回“a--ba--bc”

为什么要使用
RegExp
而不是
/…/g
?nChar的值会改变吗?
var string = "[27564][85938][457438][273][48232]";
alert(string.replace(/\[/g, '')); //outputs 27564]85938]457438]273]48232]
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;
}