2016-04-28 10 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直後.をチェックされています。チェックされるとすぐに、位置は.の直後にリセットされます。今あなたの正規表現は、それが文字列の末尾であるかどうかを$を使って調べています。しかし、文字が残っているので、文字列の終わりではなく、あなたの正規表現は拡張子に失敗します。

以下は、文字列abcd.jpgの正規表現 について説明するためのビジュアルです。 .exeまたはjs <のいずれかに一致させるべきではないjpg、後に以下の何(だけ明確にするためのスペース)

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

--- 良いここまで

先読みがゼロであるため-widthを指定すると、次のものが何であるかを確認した後、位置はそのままのままです。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

関連する問題