2016-04-28 119 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