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