我觉得我必须编辑我的整个帖子并将我的真实代码粘贴到这里,以便你们可以看到我的意思。
因此,根据电子邮件是否为空或是否格式错误,我希望在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。如果电子邮件无效,则字符串"不正确..."应该制作。
答案 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'。
也是一个关闭'}'代码示例中的第二个函数末尾缺少