2013-04-10 23 views
0

我正在使用上傳插件上傳jquery中的文件。使用通過正則表達式驗證文件 - Javascript

data.files[0].type 

我需要檢查它是否是一個有效的圖像文件類型(USAL圖像文件類型JPEG,JPEG,GIF,PNG):

這被上傳的文件類型(如JPEG) reg表達。

到目前爲止,我有:

var isValid = (/\.(gif|jpg|jpeg|tiff|png)$/i).test(data.files[0].type); 

但它不工作(總是返回false)。

有關如何解決的任何想法?

感謝

+0

爲什麼不使用jQuey驗證插件,即[擴展](HTTP://文檔。 jquery.com/Plugins/Validation/CustomMethods/extension#extension)方法? – adrianp 2013-04-10 11:06:08

+0

確保data.files [0] .type返回一個以點開頭的字符串,如「.jpg」。嘗試將它作爲字符串投射,也許。 – 2013-04-10 11:08:54

+2

只是爲了讓你知道,它檢查文件**擴展**,而不是它的類型。 – BenM 2013-04-10 11:09:10

回答

3

如果沒有「點」上傳的文件(如JPEG)的類型,所以你需要的是:

var isValid = (/(gif|jpg|jpeg|tiff|png)$/i).test(data.files[0].type) 
1

你的正則表達式是正確構造(雖然只檢查擴展,不會打字,前面已經提到),所以很明顯,你正在檢查錯誤的數據。

打印出data.files[0].type,看看它是否真的是你的想法。從變量名判斷,很有可能您的文件擴展名不帶前導點,而您的正則表達式會在那裏進行檢查。

+0

是的,它沒有。所以它看起來像'jpeg'我需要做什麼來表達我的表情? – beans 2013-04-10 11:32:14