在JavaScript中双嵌套if语句

时间:2015-07-31 08:34:45

标签: javascript if-statement

我觉得我必须编辑我的整个帖子并将我的真实代码粘贴到这里,以便你们可以看到我的意思。

因此,根据电子邮件是否为空或是否格式错误,我希望在div中显示一条消息。但是,只评估第一个if语句;第二个不是。以下是两个功能:

function val_email() {
    var email = document.getElementById("email").value;
    var pattern = /^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
    var isValid = pattern.test(email);

    if (email != null && isValid == false) {
        return false;
    }else if (email != null && isValid == true) {
        return true;
    }
}

function form_validate() {
var email = document.getElementById("email").value;
var log_in_pw = document.getElementById("password").value;

var sign_in = document.getElementById("validate_sign_in");

if (email == "") {
    sign_in.innerHTML = "email is missing";
    return false;
}else if (val_email() == false) {
    sign_in.innerHTML = "incorrect e-mail format";
}

请检查else-if。如果电子邮件无效,则字符串"不正确..."应该制作。

4 个答案:

答案 0 :(得分:1)

你的逻辑可以在这里缩短:

 var my_pattern = (regex);
 return email && my_pattern.test(email);

答案 1 :(得分:0)

尝试这样:

function checkEmail(email){    

        if (email == "") {
                return false;
            }
            var my_pattern = (regex);
            var my_validate = my_pattern.test(email); 
            if (my_validate() == false) {
            return false;
            }
            return true;
            }
        }

答案 2 :(得分:0)

您可以通过以下方式执行此操作

function validateEmail(email) {

    if(email && email.length > 0) {

        var my_pattern = (regex);
        var my_validate = my_pattern.test(email);

        if(my_validate) {
            return true;
        }
    }

    return false;
}

只检查正面情况,并在所有其他情况下返回false。

答案 3 :(得分:-1)

你的逻辑是正确的,它适用于我,它可能是你遇到的强类型问题。

只需将else if改为

即可
else if(!val_email())

val_email()只返回true或false,因此无需使用' == false'。

也是一个关闭'}'代码示例中的第二个函数末尾缺少