将参数传递给函数匹配

时间:2014-06-04 14:36:00

标签: javascript regex match web-deployment

我正在使用搜索引擎的函数匹配,因此每当用户键入搜索字符串时,我会使用该字符串并在包含国家/地区名称的数组上使用匹配函数,但它似乎不起作用。

例如,如果我这样做:

var string = "algeria";
var res = string.match(/alge/g); //alge is what the user would have typed in the search bar
alert(res);

我得到一个字符串res = "alge"://从而验证阿尔及利亚存在alge

但如果我这样做,它会返回null,为什么?我怎样才能让它发挥作用?

var regex = "/alge/g";
var string = "algeria";
var res = string.match(regex);
alert(res);

4 个答案:

答案 0 :(得分:3)

要从字符串生成正则表达式,您需要创建一个RegExp对象:

var regex = new RegExp("alge", "g");

(请注意,除非您的用户输入实际的正则表达式,否则您需要转义在正则表达式中具有特殊含义的任何字符 - 请参阅Is there a RegExp.escape function in Javascript?了解如何执行此操作。)

答案 1 :(得分:0)

你不需要围绕正则表达式引用:

var regex = /alge/g;

答案 2 :(得分:0)

删除正则表达式周围的引号。

              var regex = /alge/g;
              var string = "algeria";
              var res = string.match(regex);
              alert(res);

答案 3 :(得分:0)

找到答案,匹配函数需要一个正则表达式对象,所以必须这样做

             var regex = new RegExp(string, "g");
            var res = text.match(regex);

这很好用