JS - 使用正则表达式在数组键中查找匹配项

时间:2012-12-06 02:32:29

标签: javascript regex

有一个数组

var words =new Array(
            'apple',
            'apa',
            'found',
            'stackoverflow',
            'will'
   );

和变量

var search = 'papa.com';

现在我想设置一个像这样的表达式

var Flag=false;
var regexp;
for(var i in words) 
{
    regexp = new RegExp('(^(.*\.))?' + words[i] + '\.([a-z]{2,3})(\.(\w+))?','i');
    if (regexp.test(search)) {Flag=true;}
}
alert (Flag);

循环应该逐个获取words个数组键,然后设置正则表达式并针对构建的表达式测试search变量,如果有一个或多个匹配{{1将会出现真实的。

但是,id不起作用。

1 个答案:

答案 0 :(得分:0)

从字符串构建正则表达式时,需要转义转义序列。这是因为字符串文字表示法中的\也会开始转义序列,因此会移除\

要在根据文字语法构建的字符串中包含文字\字符,您需要\\

regexp = new RegExp('(^(.*\\.))?' + words[i] + '\\.([a-z]{2,3})(\\.(\\w+))?','i');

你的正则表达式以.而不是\.结束,这当然具有非常不同的含义。