js正则验证邮箱格式

时间:2022-01-22 19:12:15

首先总结一下邮箱的格式,邮箱由@分隔,左侧为用户名,右侧为邮箱域名,用户名可以由字母、数字、_、-以及.组成,但是必须是以字母或数字开头,邮箱的域名是由字母、数字、-和.组成的,但是必须以.加上字母的组合结尾,例如.com,.cn。由此我写下了如下的验证代码:

function testEmail(){
var email=document.getElementById("email").value;
var myReg=/^[a-zA-Z0-9]+((_|-|\.)[a-zA-Z0-9]+)*@([a-zA-Z0-9]+(-|\.))+[a-zA-Z]{2,5}$/;
if(myReg.test(email)){
alert("邮箱的格式是正确的");
}else{
alert("邮箱的格式有误!");
}
}

不过这种验证的方式有个问题,就是类似wo.ai.ni.la.la@g.n.m.k.com也会被验证通过,心里要有数哦。