2016-04-28 57 views
1

任何人都可以请告诉我如何限制音频/视频文件上传使用Blueimp jQuery文件上传?Blueimp jQuery文件上传音频/视频限制

我发现使用以下选项acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,白名单,但我想黑名单音频和视频文件,而不是白名单。

我试过以下内容,否定.exe和.js文件acceptFileTypes: /(\.|\/)(?!exe|js)$/i,它限制所有文件类型,而不管它的扩展名是什么。

在此先感谢

回答

1

你把$在错误的地方。如果你想找到除了.exe.js什么,使用

(\.|\/)(?!(exe|js)$) 

Regex Demo

原因: - 向前看符号都是零宽度断言。这意味着它们不会消耗任何字符。在您的正则

(\.|\/)(?!exe|js)$ 

您使用先行检查exejs刚过.。只要检查位置,就立即在.之后重置。现在你的正则表达式使用$来检查它是否是字符串的结尾。但是还有一个字符,所以它不是字符串的结尾,你的正则表达式对任何扩展都会失败。

下面,有一些视觉解释为您的正则表达式(\.|\/)(?!exe|js)$ 字符串abcd.jpg(空间仅仅是为了清楚)

abcd . jpg 
     ^^ ^^ 
     || || 
(Matches .) (New position after consuming .) 

.jpg,这不应该匹配要么exejs <接下来--- 好到这里

由于先行是零宽度,该位置仍然是在检查后面既不是exe也不是js

abcd . jpg 
     ^^ 
     || 
Check whether its $ i.e. end of string. This is False because we have j. So no match is returned 

如果你想黑名单的音频和视频文件,这里是首发

(?:[.\\])(?!(mp3|m4a|wmv|mp4|mkv)$)\w+ 

Regex Demo