2014-12-26 41 views
0

如何驗證Excel文件爲Excel文件正則表達式驗證碼上傳的jQuery

我的JQuery

jQuery("#excel").validate({ 
     expression: "if (VAL.match(/^([a-z]\w*)\.(xls[mx]?)$/) && VAL) return true; else return false;", 
     message: "Please upload valid excel file" 
}); 
+0

不允許在Excel文件名的數字? – 1252748

+0

@thomas,yes名稱號碼和特殊字符。 –

回答

0

你需要躲避點。

^([a-z]\w*)(\.xlsx|\.xlsm|\.xls)$ 

OR

^([a-z]\w*)\.(xls[mx]?)$ 

[mx]?可選mx

使用,如果你想允許任何字符其間^([a-z].*)\.(xls[mx]?)$

+0

這對'abc.def.xls'和包含名稱空間的任何文件都失敗。 – mudasobwa

+0

然後這個'^([a-z]。*)\。(xls [mx]?)$' –

+1

爲什麼downvote? –

1

首先,這個正則表達式匹配,你應該改變的因爲您不想在無效的上執行表達式,所以在表達式中排序:

VAL && VAL.match(/^([a-z]\w*)(.xlsx|.xlsm|.xls) 

二次,任何\w符號如起始文件名符號,以及,作爲點和空間(和,可能的話,一些其他符號。)在正則表達式點應該被轉義完全有效的。而且,最後但並非最不重要,你可以想壓縮xls* S:

/^([\w\s.]*)\.xls[xm]?$/ 
+0

如果文件名包含任何特殊字符,它將不起作用。 –

+0

真的嗎?你認爲在我的答案下複製我的論點是幫助OP的正確方法嗎? – mudasobwa

+0

[here](http://stackoverflow.com/questions/27654466/regex-validation-code-for-excel-file-upload-jquery#comment43725413_27654473)。如果您有任何疑問,請向操作人員詢問。他沒有提及文件名中的空格或點。 –