我想将看起来像正则表达式的字符串转换为正则表达式。
我想这样做的原因是因为我正在动态构建一个在正则表达式中使用的关键字列表。例如,对于文件扩展名,我将提供一个可接受的扩展名列表,我希望将其包含在正则表达式中。
var extList = ['jpg','gif','jpg'];
var exp = /^.*\.(extList)$/;
谢谢,感谢任何帮助
答案 0 :(得分:9)
您将要使用RegExp构造函数:
var extList = ['jpg','gif','jpg'];
var reg = new RegExp('^.*\\.(' + extList.join('|') + ')$', 'i');
答案 1 :(得分:2)
var extList = "jpg gif png".split(' ');
var exp = new RegExp( "\\.(?:"+extList.join("|")+")$", "i" );
请注意:
(?:...)
。哦,你的原始扩展名列表包含'jpg'两次:)
答案 2 :(得分:1)
您可以使用RegExp对象:
var extList = ['jpg','gif','jpg'];
var exp = new RegExp("^.*\\.(" + extList.join("|") + ")$");