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

regex search term in variable

你知道我如何将搜索字符串放入 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' 存储在变量 'search' 中,我该如何使用变量?

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;
     }
});   

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

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

并在 search 方法中使用它。