js正则表达式判断邮箱格式是否正确

发布时间:2020-03-12编辑:脚本学堂
本文介绍了js使用正则表达式验证邮箱格式是否正确的方法,需要的朋友参考下。

在使用js正则验证邮箱格式时,有时会以为用indexOf()函数也可判断邮箱格式中是否可以包含“@”,看上去似乎可以判断成功了,但这样是有问题的?

例子,一般的邮箱格式为:003567sina@sina.com,若用indexOf来判断此email地址,那么当用户输入了003567sina@sina的时候,检测仍可通过,明显这个地址缺少了后面的“.com”,所以这是不行的,最好还是使用正则来判断,更准确:
 

复制代码 代码示例:
<script type="text/javascript">
function ischeckemail(){
var email = document.getElementById("emailname").value;
  if (email != "") {
     var reg = /^w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$/;
     isok= reg.test(email );
       if (!isok) {
            alert("邮箱格式不正确,请重新输入!");
            document.getElementById("emailname").focus();
            return false;
        } // www.jb200.com
    };
}
</script>

例子:
 

复制代码 代码示例:
<input type="text" id="emailname">
<input type="submit" value="检测Email地址格式是否正确"
onClick="return ischeckemail()" >
 

请注意id要设成"emailname"。运行结果,当eamil地址格式不对时,会弹出提示框,其它情况未做处理。

例2,JS验证邮箱格式是否正确。
 

复制代码 代码示例:
/*
*验证邮箱格式是否正确
*参数strEmail,需要验证的邮箱
*/
function chkEmail(strEmail) {
if (!/^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/.test(strEmail)) {
return false;
}
else {
return true;
}
}