为什么我不能在我的JavaScript中做“或”条件?

时间:2011-06-16 12:55:43

标签: javascript

嗨我有以下功能,当我在其中添加OR条件时,其行为会有所不同。

<script>
function checkfield(obj)
{
    var full_name = obj.upload_image.value.toLowerCase();
    var full_length = parseInt(full_name.length);
    var dotAt = parseInt(full_name.lastIndexOf("."));

    var ext = full_name.substring((dotAt+1), full_length);
    if(ext == "jpg" || ext == "png")
        {
            //alert("Sorry! allowed file types are .png, .gif, .jpg");
            //return false;
            console.log("Correct Extention");
        }
        else{
            console.log("Wrong extention");
        }


    return false;
}
</script>

我在||运算符之前给出了什么,它运行正常,第二个运算符失败。请有人可以选择我做错了什么或者应该怎么做。

3 个答案:

答案 0 :(得分:5)

您的条件很好,问题可能与ext中的值有关。我会console.log或查看调试器中的值,它可能不是您认为的。

enter image description here

编辑,从评论中,你说文件名是text.PNG。 “PNG”与“png”不同

答案 1 :(得分:3)

如果使用正则表达式,则可以在一行中验证多个扩展名。

// allows: jpeg, jpg, png, gif
if (/\.(jpe?g|png|gif)$/i.test(full_name))
{
}

答案 2 :(得分:-5)

试试这个

<script>
function checkfield(obj)
{
    var full_name = obj.upload_image.value.toLowerCase();
    var full_length = parseInt(full_name.length);
    var dotAt = parseInt(full_name.lastIndexOf("."));

    var ext = full_name.substring((dotAt+1), full_length);
    if(trim(ext) == "jpg" || trim(ext) == "png")
        {
            //alert("Sorry! allowed file types are .png, .gif, .jpg");
            //return false;
            console.log("Correct Extention");
        }
        else{
            console.log("Wrong extention");
        }


    return false;
}
</script>