Mozilla并没有完美地执行这段代码,尽管它适用于Chrome和IE

Mozilla is not executing this code perfectly, although it works with Chrome and IE

本文关键字:适用于 IE Chrome 代码 完美 并没有 执行 段代码 Mozilla      更新时间:2023-09-26

它是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].*))+

在两个方面存在问题:

  1. 它仅适用于 Windows,因为它假设'作为路径分隔符
  2. 仅当浏览器提供所选文件的路径时,它才有效,出于安全原因,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)$/;