我有以下字符串:
[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,'');
我在这里做错了什么?
非常感谢提前。
答案 0 :(得分:7)
您需要转义[
,否则会被解释为character class的开头:
var nChar = '\\[';
如果nChar是一个变量(我认为它在使用RegExp
而不是/.../g
时没什么意义),那么你可能会发现这个问题很有用:
答案 1 :(得分:1)
var string = "[27564][85938][457438][273][48232]";
alert(string.replace(/\[/g, '')); //outputs 27564]85938]457438]273]48232]
我转义了[
字符并使用全局标志来替换该字符的所有实例。
答案 2 :(得分:0)
我今天遇到了这个问题。 要求是替换所有" 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;
}
实施例: &#34; ababc&#34; .mreplace(&#34; a&#34;,&#34; a - &#34;); //返回&#34; a - ba - bc&#34;