0

我对动态创建RegExp的对象有问题(在文件上传插件中)

这是插件的初始化代码:

$('#fileupload').fileupload('option', {
    acceptFileTypes: /(\.|\/)(doc|pdf)$/i
});

该代码更改了正则表达式:

$('#files-list').change(function() {
   $('#fileupload').fileupload(
            'option',
            'acceptFileTypes',
            new RegExp('(\.|\/)('+$(this).find(":selected").attr('f-ext')+')$/i')
                );
            });

/并在该正则表达式的开头和结尾添加字符。

见下图。第 1 和第 2 行是插件初始化后的第 3 和第 4 行。这会导致文件名验证失败。

在此处输入图像描述

如何解决?

4

2 回答 2

2

要使用不区分大小写的修饰符,您应该执行以下操作

new RegExp( regexp_expression , 'i' );
于 2012-08-16T14:18:04.170 回答
2

JS 正则表达式的修饰符,当在构造函数中提供时,应单独指定:

...new RegExp('(\.|\/)('+$(this).find(":selected").attr('f-ext')+')$', 'i');

一般语法是:

var newRegex = new RegExp(pattern [, flags]);
于 2012-08-16T14:18:34.173 回答