嗨我有以下功能,当我在其中添加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>
我在||
运算符之前给出了什么,它运行正常,第二个运算符失败。请有人可以选择我做错了什么或者应该怎么做。
答案 0 :(得分:5)
您的条件很好,问题可能与ext
中的值有关。我会console.log
或查看调试器中的值,它可能不是您认为的。
编辑,从评论中,你说文件名是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>