变量中的正则表达式搜索项

时间:2016-09-01 11:00:15

标签: regex string search var

您知道我如何将搜索字符串放入RegExp中吗? 如果我的搜索词是'Ame',那么我可以写

v.name.search(new RegExp(/Ame/i)).                //It works  

var search = $("#search-query").val();
v.name.search(new RegExp('/'+search+'/i'          //It doesn't work  

但是如果值'Ame'存储在var'search'中,我该如何使用var?

var search = $("#search-query").val();
if($("#search-query").val().length <1){  
            $scope.hiddenError = true;
            return;
        } 

$.each(json.products, function(i, v) {
     if (v.name.search(new RegExp('/'+search+'/i')) != -1) {              //doesn't work
           $scope.recentGame.push({ label:v.name, value: v.type, link: v.url });
           return;
     }
});   

1 个答案:

答案 0 :(得分:1)

如果要从字符串构建自定义正则表达式,则不要包含分隔符/或选项。您使用以下形式的函数构造函数:

var regex = new RegExp(search, "i");

并在search方法中使用它。