它是JavaScript中的文件验证代码,用于验证要上传的文件是否为必需格式。在Mozilla中执行此代码时,Mozilla总是显示“不是有效的文件扩展名”错误,而此脚本可完美地与Chrome和IE一起使用。
regx_docx = /^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))+(.doc|.docx|.DOC|.DOCX|.jpg|.jpeg|.JPG|.JPEG|.gif|.GIF|.bmp|.BMP|.png|.PNG|.pdf|.PDF|.xls|.XLS|.xlsx|.XLSX|.txt|.TXT|.rar|.RAR|.zip|.ZIP)$/;
for (var i = 0; i < fields.length; i++) {
var field = fields[i];
if ((field.name == 'doc[]') && (field.value!= '')) {
if(!regx_docx.test(field.value)){
count++;
errtxt+= "\n"+count+") Not a valid file Extension.";
}
}
}
最佳答案
那个部分
^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))+
有两种问题:
它仅适用于Windows,因为它假定
\
作为路径分隔符仅在浏览器提供所选文件的路径时才起作用,出于安全原因,Firefox不提供该路径(IE提供了虚拟路径)。
由于您仍然只对扩展名感兴趣,因此只需从正则表达式中删除该部分,就可以了。
另外,您需要对点进行转义以使其与文字
.
字符匹配。regx_docx = /\.(doc|docx|DOC|DOCX|jpg|jpeg|JPG|JPEG|gif|GIF|bmp|BMP|png|PNG|pdf|PDF|xls|XLS|xlsx|XLSX|txt|TXT|rar|RAR|zip|ZIP)$/;
关于javascript - 尽管Mozilla可与Chrome和IE一起使用,但它无法完美地执行此代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12026141/