我有动态创建的RegExp
对象(在file upload plugin中)
这是插件的初始化代码:
$('#fileupload').fileupload('option', {
acceptFileTypes: /(\.|\/)(doc|pdf)$/i
});
该代码更改了正则表达式:
$('#files-list').change(function() {
$('#fileupload').fileupload(
'option',
'acceptFileTypes',
new RegExp('(\.|\/)('+$(this).find(":selected").attr('f-ext')+')$/i')
);
});
并在该正则表达式的开头和末尾添加/
字符。
见下图。第一&第二行是插件初始化后的第3行和第4行。这导致文件名验证失败。
如何解决?
答案 0 :(得分:2)
要使用不区分大小写的修饰符,您应该执行下一步
new RegExp( regexp_expression , 'i' );
答案 1 :(得分:2)
JS regex的修饰符,在构造函数中提供时,应单独指定:
...new RegExp('(\.|\/)('+$(this).find(":selected").attr('f-ext')+')$', 'i');
var newRegex = new RegExp(pattern [, flags]);