我想将看起来像正则表达式的字符串转换为正则表达式。Javascript:将字符串转换为正则表达式
我想这样做的原因是因为我动态构建了要在正则表达式中使用的关键字列表。例如,使用文件扩展名,我将提供我想包含在正则表达式中的可接受扩展名列表。
var extList = ['jpg','gif','jpg'];
var exp = /^.*\.(extList)$/;
感谢,任何帮助表示赞赏
我想将看起来像正则表达式的字符串转换为正则表达式。Javascript:将字符串转换为正则表达式
我想这样做的原因是因为我动态构建了要在正则表达式中使用的关键字列表。例如,使用文件扩展名,我将提供我想包含在正则表达式中的可接受扩展名列表。
var extList = ['jpg','gif','jpg'];
var exp = /^.*\.(extList)$/;
感谢,任何帮助表示赞赏
你会想用正则表达式的构造函数:
var extList = ['jpg','gif','jpg'];
var reg = new RegExp('^.*\\.(' + extList.join('|') + ')$', 'i');
var extList = "jpg gif png".split(' ');
var exp = new RegExp("\\.(?:"+extList.join("|")+")$", "i");
需要注意的是:
(?:...)
。哦,你原来的扩展名列表中包含 'JPG' 两次:)
可以使用RegExp对象:
var extList = ['jpg','gif','jpg'];
var exp = new RegExp("^.*\\.(" + extList.join("|") + ")$");
另一种方法可以使用eval(.. ),但创建Regexp对象是更好的解决方案。 – 2011-01-13 04:30:50