使用JavaScript验证表单中Email是否正确的方法。
作者:梦翔儿 日期:2007-7-5 18:15:00
回答同学,写ASP程序中,遇到Email表单验证合法性的问题的解答,今天有个同学问要有正则表达式吗?当时我想,用不着,一个个情况验证就可以了。今天坐班车时又想,也许正则表达式会更简单,我再想想,一会贴上来。先把javascript的写法,放在这里供大家参考。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>

<script   langauge="Javascript">
<!--
//   如果输入值为空,函数返回false  
  function   checkEmail()   {  
                                var   emailStr=document.form1.email.value;  
        
        if   (emailStr.length   ==   0)   {  
                                        alert("Email地址不正确");  
                                        return   false;  
                                }  
                                var   emailPat=/^(.+)@(.+)$/;  
                                var   specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";  
                                var   validChars="\[^\\s"   +   specialChars   +   "\]";  
                                var   quotedUser="(\"[^\"]*\")";  
                                var   ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;  
                                var   atom=validChars   +   '+';  
                                var   word="("   +   atom   +   "|"   +   quotedUser   +   ")";  
                                var   userPat=new   RegExp("^"   +   word   +   "(\\."   +   word   +   ")*$");  
                                var   domainPat=new   RegExp("^"   +   atom   +   "(\\."   +   atom   +   ")*$");  
                                var   matchArray=emailStr.match(emailPat);  
                                if   (matchArray   ==   null)   {  
                                        alert("Email地址不正确");  
                                        return   false;  
                                }  
                                var   user=matchArray[1];  
                                var   domain=matchArray[2];  
                                if   (user.match(userPat)   ==   null)   {  
                                      alert("Email地址不正确");    
                                      return   false;  
                                }  
                                var   IPArray   =   domain.match(ipDomainPat);  
                                if   (IPArray   !=   null)   {  
                                        for   (var   i   =   1;   i   <=   4;   i++)   {  
                                              if   (IPArray[i]   >   255)   {  
                                                    alert("Email地址不正确");  
                                                    return   false;  
                                              }  
                                        }  
                                        return   true;  
                                }  
                                var   domainArray=domain.match(domainPat);  
                                if   (domainArray   ==   null)   {  
                                            alert("Email地址不正确");  
                                            return   false;  
                                }  
                                var   atomPat=new   RegExp(atom,"g");  
                                var   domArr=domain.match(atomPat);  
                                var   len=domArr.length;  
                                if   ((domArr[domArr.length-1].length   <   2)   ||  
                                        (domArr[domArr.length-1].length   >   3))   {  
                                        alert("Email地址不正确");  
                                        return   false;  
                                }  
                                if   (len   <   2)   {  
                                      alert("Email地址不正确");  
                                      return   false;  
                                }  
        alert("Email地址正确");//如果提交给ASP页面处理,这句可以省略   
                                return   true;  
                          }

function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}
//-->
</script>
</head>

<body>
<form name="form1" method="post" action="ok.asp"  onSubmit="JavaScript:return checkEmail();">
  请输入Email:
    <input name="email" type="text" id="email" >
    <input name="Submit" type="submit"value="提交">
</form>
</body>
</html>

  • 标签:JavaScript Email 
  • 发表评论:

      大名:
      密码: (游客无须输入密码)
      主页:
      标题:
    Powered by Oblog.