我想在长字符串中找到一个单词的出现。这个词随着for循环的每次迭代而改变:
array_word = '....'
for(var i.........) {
var regex=new RegExp('/.*'+array_word[i]+'.*/');
if(regex.test(array_word[i]) {
return true;
}
}
问题可能是我使用了错误的正则表达式,因为程序没有返回true,有人可以帮助我吗?
答案 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');
文字表示法在计算表达式时提供正则表达式的编译。当正则表达式保持不变时,使用文字表示法。例如,如果使用文字表示法构造循环中使用的正则表达式,则不会在每次迭代时重新编译正则表达式。