js replace()无法替换‘[’?

ZeronoFreya 发布于 2016/10/07 13:59
阅读 391
收藏 0
str.replace(new RegExp("_0xcd35\[","gm"),"ad")

无法替换是为什么?

从代码框里出不来了,

var str="_0xcd35[0] & _0xcd35[1]&_0xcd35[0] & _0xcd35[1]";
arr = ["xx","yy","zz"];
var rs;
for(var i=0;i<arr.length;i++){
   reg = '_0xcd35\['+i+'\]';
   tar = '"'+arr[i]+'"';
   str=str.replace(new RegExp(reg, 'g'), tar)
}
document.write(srt)  全面的无效



加载中
0
mark35
mark35

str.replace(new RegExp('_0xcd35\\[', 'gm'), 'ad')

or

str.replace(/_0xcd35\[\d+?\]/gm 'ad');





mark35
mark35
回复 @ZeronoFreya : 估计你遇见过用4个\甚至6个\转义的情况吧~
ZeronoFreya
ZeronoFreya
没想到需要两个\
0
chaoshu
chaoshu
reg ='_0xcd35\\['+i+'\\]';
0
pantrick
pantrick
因为[是正则表达式中的保留字,所以要转义
0
littledew
littledew

使用eval + \\ 

https://jsfiddle.net/8ksakq7s/

返回顶部
顶部