为什么我的javascript regexp不能使用数组项?

时间:2014-08-27 04:20:38

标签: javascript arrays regex variables

var x = new Array('1','2','3');
var y = new Array('a','b','c');
var iLen = x.length;
var s = 'abcdefgabcdefg';

for (var i=0;i<iLen;i++) {
   var re = new RegExp(x[i],'g');
   s = s.replace(y[i], re);
}

alert(s);

我希望结果为 123defg123defg 。 相反,我得到 / 1 / g / 2 / g / 3 / gdefgabcdefg

1 个答案:

答案 0 :(得分:3)

你做错了,因为你想在全局范围内将y的出现替换为x,你应该说

for (var i=0;i<iLen;i++) {
   var re = new RegExp(y[i],'g'); //this is regexp for global y[i]
   s = s.replace(re, x[i]); //replace all occurrences of y[i] with x[i]
}