我无法检查文件的扩展名

时间:2014-02-25 18:53:56

标签: javascript jquery

我有一个输入文件类型,并将寻找文件的扩展名以验证它不是jpg,png或空,但是当我在if中添加各种条件时,它总是给我错误(总是输入if)。

var file = $("input[name=logo]", "#form").val();
var extension = file.replace(/^.*\./, '');
console.log(extension);
if (extension !== "jpg" || extension !== "png" || extension !== "") {
    $('.error-message').css({
        'display': 'block'
    });
    $(".error-message span").html('Ups! Please insert a png or jpg file!');
    $('.error-message').fadeIn('slow', function () {
        $('.error-message').delay(7000).fadeOut('slow');
    });
    return false;
}

感谢所有

2 个答案:

答案 0 :(得分:2)

让我们看看你的情况:

(extension !== "jpg" || extension !== "png" || extension !== "")

那里出了点问题......

如果这三个中的一个是true,那么继续。如果扩展名为jpg,则它不能为png,因此条件为真。

无论你做什么,你的条件都是真的。

你看到了问题吗?你有错误的操作员。试试:

(extension !== "jpg" && extension !== "png" && extension !== "")

JSFiddle demonstrating the code snippet

答案 1 :(得分:1)

所以,让我们来看看这一行:

(extension !== "jpg" || extension !== "png" || extension !== "")

这相当于:

!(extension === "jpg" && extension === "png" && extension === "")

这可能会让我们更容易看到这一切都是真的。 extension不能等于这三件事。

你真正想要的是

(extension !== "jpg" && extension !== "png" && extension !== "")