使用正则表达式测试字符串时出错

时间:2015-11-16 15:12:24

标签: javascript regex

我想在长字符串中找到一个单词的出现。这个词随着for循环的每次迭代而改变:

array_word = '....'

for(var i.........) {
    var regex=new RegExp('/.*'+array_word[i]+'.*/');

    if(regex.test(array_word[i]) {
        return true;
    }
}

问题可能是我使用了错误的正则表达式,因为程序没有返回true,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

您不需要使用正斜杠。

var regex = new RegExp('.*'+array_word[i]+'.*');

.*对于这种情况不再需要。

var regex = new RegExp(array_word[i]);

来自文档,

  

有两种方法可以创建一个RegExp对象:文字符号和构造函数。要指示字符串,文本表示法的参数不使用引号,而构造函数的参数使用引号。因此,以下表达式创建相同的正则表达式:

/ab+c/i;
new RegExp('ab+c', 'i');
new RegExp(/ab+c/, 'i');
  

文字表示法在计算表达式时提供正则表达式的编译。当正则表达式保持不变时,使用文字表示法。例如,如果使用文字表示法构造循环中使用的正则表达式,则不会在每次迭代时重新编译正则表达式。