繁体   English   中英

想要在JavaScript中验证电子邮件地址,但不知道如何在字符串中仅包含一个@

[英]Want to validate email address in JavaScript but can't figure out how to include only one @ in the character string

到目前为止,我有这个:

function validateForm() {
var str=document.forms["myForm"]["email"].value;
var atpos=str.indexOf("@");
var dotpos=str.lastIndexOf(".com");
   if (atpos>0 || dotpos<atpos+2 || dotpos+2>=str.length) 
 {
   alert("Incorrect e-mail address");
   return false;
  }
}

如何在字符串中包含一次显示的“ @”? (因此无法将电子邮件验证为@@)。

如果不是regex方法,我也将不胜感激。

如果您不想使用正则表达式,则可以按出现的方式拆分字符串。

var email = "foor@bar.com";
if((email.split('@').length != 2) {
    // it's not an email address
}
else {
    // it is an email address
}

一个不错的技巧是检查第一个@是否也是最后一个@。

if(str.indexOf('@') != -1 && str.indexOf('@') == str.lastIndexOf('@')){
    // email is valid
} 

检查这个伙伴

function validateForm()
{
    var x=document.forms["myForm"]["email"].value;
    var atpos=x.indexOf("@");
    var dotpos=x.lastIndexOf(".");
    if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
    {
        alert("Not a valid e-mail address");
        return false;
    }
}

验证电子邮件地址的最佳方法是通过正则表达式:

/^\w+([\-+\.']\w+)*@\w+([\-\.]\w+)*\.\w+([\-\.]\w+)*$/

如果您不知道正则表达式,我建议您立即学习它们,因为它们在处理和验证字符串内容时是一个非常强大且有用的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM