尝试使用javascript验证电子邮件

尝试使用javascript验证电子邮件,javascript,validation,email,Javascript,Validation,Email,让以下代码在脚本中正确运行有点困难: if (email == "") { $("#field2 .error1").show(); $("input#email").focus(); return false; } else if(email != /^[a-zA-Z0-9._-]+@[a-zA-Z0-9][a-zA-Z0-9.-]*[\.]{1}[a-zA-Z]{2,4}$/) { $("#field2 .error2").show();

让以下代码在脚本中正确运行有点困难:

if (email == "") {
    $("#field2 .error1").show();
    $("input#email").focus();
    return false;  
    }
else if(email != /^[a-zA-Z0-9._-]+@[a-zA-Z0-9][a-zA-Z0-9.-]*[\.]{1}[a-zA-Z]{2,4}$/) {
    $("#field2 .error2").show();
    $("input#email").focus();
    return false;  
    }
基本上,我的页面上有一个表单,它使用一个外部js文件验证几个字段。我希望它检查email字段是否为空,或者它是否与正则表达式不匹配。如果为空,则返回.error;如果与正则表达式不匹配,则返回.error

所发生的是,它显示了错误,但即使我输入了正确的电子邮件地址,它也不会验证并继续显示。错误2。我很困惑我在这里缺少什么,所以任何帮助都将不胜感激

即使我试试这个

if (email == "" || email != /^[a-zA-Z0-9._-]+@[a-zA-Z0-9][a-zA-Z0-9.-]*[\.]{1}[a-zA-Z]{2,4}$/) {
    $("#field2 .error1").show();
    $("input#email").focus();
    return false;  
    }
我还是不能把表格寄出去


好的,我试过了,它似乎工作正常。看起来对吗?另外,我将考虑regx字符串,并使用更好的一个,这更只是为了让它按预期工作

var email = $("input#email").val();
var regx = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9][a-zA-Z0-9.-]*[\.]{1}[a-zA-Z]{2,4}$/;   
if (email == "") {
    $("#field2 .error").show();
    $("input#email").focus();
    return false;  
}
else if (!regx.test(email)){
    $("#field2 .error2").show();
    $("input#email").focus();
    return false;
}

你需要这样做

 var regx=/^[a-zA-Z0-9._-]+@[a-zA-Z0-9][a-zA-Z0-9.-]*[\.]{1}[a-zA-Z]{2,4}$/  // create your regular expresseion

 if(regx.test(email)){// use test() method to do the match
   // do if match
  }else{
   // not matched
   }

您要比较的是一个正则表达式

 var filter = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9][a-zA-Z0-9.-]*[\.]{1}[a-zA-Z]{2,4}$/;

 if (!filter.test($("input#email").val())) 
 {

    // invalid email

 }
 //valid email
试试这个

    var regexp=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i;

if(regexp.test(email)){
   // matched
  }else{
   // not matched
   }
试试这个 负责人:


函数validateEmail(表单){
如果(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+*(\.\w{2,3})+$/.test(格式email-id.value))
{
返回(真);
}
警告(“无效的电子邮件地址!请仔细输入!”;
返回(假);
}
正文:


电子邮件地址:

这里还有很多其他的线程,关于使用正则表达式验证电子邮件地址。你可以通过简单的搜索找到所有这些。这里有一个很流行的例子:问题中使用的正则表达式和迄今为止所有的答案都无法提供许多有效的电子邮件地址。名称部分应该能够包含字符!#$%&'*+-/=^_`{|}~如果地址的一部分出现在引号中,则几乎可以是任何字符。这些规则将过滤掉像Paul这样的有效(但不常见)电子邮件地址+1@example.com或者蒂莫西·琼斯#3@example.orgI我很困惑,因为我留下了空白的比赛部分,我想我会测试它,它的工作。我不需要在匹配的部分粘贴一些东西吗?我有:var email=$(“input#email”).val();if(email==”{$(“#field2.error1”).show();$(“输入#email”).focus();return false;}var regx=/^[a-zA-Z0-9.[a-zA-Z0-9][a-zA-Z0-9.*[\.]{1}[a-zA-Z]{2,4}$/if(regx.test email)){///如果匹配,则执行}否则{2.error2.error2.show($)输入;return false;}我不明白你在说什么。。如果您不需要使用匹配部分,请不要使用它。
<script type="text/javascript">
function validateEmail(theForm) {
    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(theForm.email-id.value))
    {
        return(true);
    }
    alert("Invalid e-mail address! Please enter again carefully!.");
    return(false);
}
</script>
<form onSubmit="return validateEmail(this);" action="">
E-mail Address:
    <input type="text" name="emailid" />
    <input type="submit" value="Submit" />
    <input type="reset" value="Reset" />
</form>