使用正则expression式检查文件扩展名 – application / vnd.ms-excel

我需要检查一个文件是否是xls。 我正在尝试这个代码,但我上传了一个xls文件,我得到错误无效的文​​件。

var acceptFileTypes = /(.|\/)(application\/vnd.ms-excel)$/i; console.log(data.originalFiles[0]['type']); //application/vnd.ms-excel if (!acceptFileTypes.test(data.originalFiles[0]['type'])) { uploadErrors.push('Invalid file'); } 

正则expression式有问题吗?

这是你的错误:( (.|\/)

这部分需要消耗一个字符 – 实际上相当于.

删除那部分,你会没事的。 你还需要逃避时间:

 var acceptFileTypes = /application\/vnd\.ms-excel$/i; 

当然,这相当于:

 var acceptFileTypes = "application/vnd.ms-excel"; var isExcel = yourFile.toLowerCase().indexOf(acceptFileTypes, yourFile.length - acceptFileTypes.length) == 0;