我有以下字符串:
[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,'');我在这里做错了什么?
在此之前,非常感谢您。
发布于 2011-11-11 04:40:41
您需要转义[,否则它将被解释为character class的开始
var nChar = '\\[';如果nChar是一个变量(我假设它是一个变量,否则使用RegExp而不是/.../g没有什么意义),那么您可能会发现这个问题很有用:
发布于 2011-11-11 04:41:52
var string = "[27564][85938][457438][273][48232]";
alert(string.replace(/\[/g, '')); //outputs 27564]85938]457438]273]48232]我对[字符进行了转义,并使用全局标志替换了该字符的所有实例。
发布于 2011-12-01 15:11:36
我今天遇到了这个问题。要求是替换用户输入字符串中所有"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;
}示例:"ababc".mreplace("a","a--");//返回"a--ba--bc“
https://stackoverflow.com/questions/8085989
复制相似问题