我在搜索引擎中使用了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?。)