0
我不得不从数组的每个字符串(元素)中列表(var。“模式”)的符号出现次数。我想通过在变量中设置模式来使它更通用。但是,当我尝试通过使用RegExp对象来实现它时,它不起作用。JavaScript的正则表达式对象与内联正则表达式
我无法理解的代码两个部分的区别:
这种变异不起作用。
var pattern = "@#%";
var arr = ['[email protected]','D#nse Cr%wd','Cr#m#n#l [email protected]@[email protected]'];
for(var i=0; i < arr.length; i++){
l = '/[^'+pattern+']/';
g = new RegExp(l,"gi");
console.log(arr[i].replace(g,"").length);
}
结果将是:
4
11
18
同样的变异,但没有RegExp对象,做工精细:
var arr = ['[email protected]','D#nse Cr%wd','Cr#m#n#l [email protected]@[email protected]'];
for(var i=0; i < arr.length; i++){
console.log(arr[i].replace(/[^@#%]/gi,"").length);
}
结果将是:
1
2
6
你能解释一下这个区别吗?
在此先感谢。