我希望将一个看起来像正则表达式的字符串转换成真正的正则表达式。
我这么做的原因是我正在动态构建一个关键词列表,以用于正则表达式。例如,对于文件扩展名,我会提供一个可接受的扩展名列表,我想要将它们包含在正则表达式中。
var extList = ['jpg','gif','jpg'];
var exp = /^.*\.(extList)$/;
感谢,任何帮助都会受到赞赏。
我希望将一个看起来像正则表达式的字符串转换成真正的正则表达式。
我这么做的原因是我正在动态构建一个关键词列表,以用于正则表达式。例如,对于文件扩展名,我会提供一个可接受的扩展名列表,我想要将它们包含在正则表达式中。
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' :)
var extList = ['jpg','gif','jpg'];
var exp = new RegExp("^.*\\.(" + extList.join("|") + ")$");
RegExp
,而不是Regexp
; b) 你创建了/^.*.(jpg|gif|jpg)$/
(注意缺少反斜杠); c) 如果你不打算传递任何标志,第三个参数是可选的。 - Phrogz"/^b/"
。除了手动去掉斜杠之外,有没有其他方法来解决这个问题呢?(字符串来自用户输入)。 - Embedded_Mugs