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

例如,如果我这样做:

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"://从而验证阿尔及利亚是否存在代数

但是,如果我这样做,它将返回null,为什么?怎样使它工作?

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

最佳答案

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

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


(请注意,除非您的用户将键入实际的正则表达式,否则您将需要转义正则表达式中具有特殊含义的任何字符-有关方法,请参见Is there a RegExp.escape function in Javascript?。)

08-19 16:09