Blueimp jQuery文件上传音频/视频限制

时间:2016-04-28 01:39:14

标签: javascript regex regex-negation blueimp regex-lookarounds

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

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

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

提前致谢

1 个答案:

答案 0 :(得分:1)

您将$放在错误的位置。如果您想查找.exe.js以外的任何内容,请使用

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

<强> Regex Demo

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

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

您使用前瞻后exe js后检查..。一旦检查,位置就会在$之后重置。现在你的正则表达式正在使用(\.|\/)(?!exe|js)$检查它是否是字符串的结尾。但是还有一个字符,所以它不是字符串的结尾,你的正则表达式会因任何扩展而失败。

下面,有一些视觉效果可以解释你的正则表达式abcd.jpg 对于字符串 abcd . jpg ^^ ^^ || || (Matches .) (New position after consuming .) (仅为了清晰起见,空格)

.

jpg exe之后的内容,jsexe&lt; --- 不应与此匹配 >

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

如果你想将音频和视频文件列入黑名单,这里有启动器

<!ATTLIST movie play (Yes|No) "Yes">

<强> Regex Demo