Blueimp jQuery 文件上传 Audio/Video 限制

Blueimp jQuery File Upload Audio/Video restriction

谁能告诉我如何限制 audio/video 使用 Blueimp 上传文件 jQuery 文件上传?

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

我尝试了以下方法来取消 .exe 和 .js 文件 acceptFileTypes: /(\.|\/)(?!exe|js)$/i,这限制了所有文件类型,无论其扩展名如何。

提前致谢

你把 $ 放在了错误的地方。如果您想查找 .exe.js 以外的任何内容,请使用

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

Regex Demo

原因:- 前瞻是零宽度断言。这意味着它们不消耗任何字符。在你的正则表达式中

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

您正在使用前瞻检查 . 之后的 exejs。一旦检查,位置就会在 . 之后重置。现在您的正则表达式正在使用 $ 检查它是否是字符串的结尾。但是还剩下一个字符,所以它不是字符串的结尾,您的正则表达式对于任何扩展都会失败。

下面,有一些视觉来解释你的正则表达式 (\.|\/)(?!exe|js)$ 对于字符串 abcd.jpg(空格只是为了清楚起见)

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

. 之后的是 jpg,它不应该与 exejs 匹配 <---good till here

由于前瞻是零宽度的,在检查后面的内容既不是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