需要执行简单的操作。如果fileExt不是.jpg .jpeg .png .pdf,则应显示警告。
var fileName = 'upload-success.png';
var fileExt = fileName.match(/\.[a-z]{3,4}$/i); // fails
// var fileExt = '.png'; // works
if (fileExt !== ".jpg" && fileExt !== ".jpeg" && fileExt !== ".png" && fileExt !== ".pdf") {
alert('Incorrect Extension: '+fileExt);
}
在两种情况下设置fileExt结果都是一样的。 但是在使用match-if语句的情况下找不到字符串。
答案 0 :(得分:1)
答案 1 :(得分:1)
如何直接使用match()
检查文件扩展名?
var f = 'foo.png';
if (!f.match(/\.(jpe?g|png|pdf)$/))
alert('invalid extension');
由于我们不需要match()
返回的数组,我们可以在这里使用test()
:
if (!/\.(jpe?g|png|pdf)$/.test(f))
alert('invalid extension');
请记住,查看文件的扩展名并不能确保其内容与扩展名的文件类型相匹配;但是,过滤扩展程序可确保用户不会意外选择/上传错误的文件。查看文件的MIME类型绝对是可取的,但是这样的检查必须在服务器端完成(当然有很多方法可以绕过用javascript完成的检查,最明显的是在浏览器中停用javascript支持)。