在Web開發中,經常會涉及到文件上傳。文件上傳時通常都要驗證文件的有效性,這個通常就要用正則表達式來判斷。
方法一:
?
1 2 3 4 5 6 7 $('input[type="file"]').on('change', function() { var reg = /[^/]*[/]+/g; //匹配文件的名稱和後綴的正則表達式 var name = $(this).val().replace(reg, ''); var postfix = /.[^.]+/.exec(name);//獲取文件的後綴 var text =name.substr(0,postfix['index']);//獲取沒有後綴的名稱 // 檢測上傳文件 });方法二:
以下只是個例子,變量file可以是任意類似於網絡路徑的字符串,這個例子是獲得name=file的對象傳過來的文件地址
代碼如下:
var file=jQuery("input[name='file']").val()
var filename=file.replace(/.*(/|)/, "");
var fileExt=(/[.]/.exec(filename)) ? /[^.]+$/.exec(filename.toLowerCase()) : '';
filename得到文件名
fileExt得到後綴名
方法三:
網上能找到的正則表達式大多都沒有考慮中文文件夾和中文文件名的情況。
後來,自己動手寫了一個。在走過了不少歪路後,我根據windows的命名規則(文件名中不能包含下列字符:/ / * ? | " < >),終於完成了一個自認為比較完整的一個正則式:
代碼如下:
(([a-zA-Z]:)|(//))((//)[^///*/?/|/:"<>]{1,255})+/.(([j,J][p,P][g,G])|([g,G][i,I][f,F]))
這個表達式是判斷上傳文件類型為jpg或gif格式的。自己測試過,無論文件夾和文件名是怎麼樣命名的,只要能通過windows文件管理找到的,都能正確判斷。
以上所述就是本文的全部內容了,希望大家能夠喜歡。