JavaScript验证Email地址

电子邮件地址具有以下统一的标准格式:用户名@服务器域名。

用户名表示邮件信箱、注册名或信件接收者的用户标识,@符号后是你使用的邮件服务器的域名。@可以读成“at”,也就是“在”的意思。整个电子邮件地址可理解为网络中某台服务器上的某个用户的地址。
1.用户名,可以自己选择。由字母a~z(不区分大小写)、数字0~9、点、减号或下划线组成;只能以数字或字母开头和结尾,例如:beijing.2008;用户名长度为4~18个字符 。
2.与你使用的网站有关,代表邮箱服务商。例如网易的有@163.com/@126.com/@188.com/@Yeah.com等;新浪的是@sina.com/@vip.sina.com等

 

完整js验证Email 
function char_test(chr)   
//字符检测函数   
{   
 var i;   
 var smallch="abcdefghijklmnopqrstuvwxyz";   
 var bigch="ABCDEFGHIJKLMNOPQRSTUVWXYZ";   
 for(i=0;i<26;i++)   
 if(chr==smallch.charAt(i) || chr==bigch.charAt(i))   
   return(1);   
 return(0);   
}   
 
function spchar_test(chr)   
//数字和特殊字符检测函数   
{   
 var i;   
 var spch="_-.0123456789";   
 for (i=0;i<13;i++)   
   if(chr==spch.charAt(i))   
   return(1);   
 return(0);   
}   
 
function email_test(str)   
{   
 var i,flag=0;   
 var at_symbol=0;   
 //“@”检测的位置   
 var dot_symbol=0;   
 //“.”检测的位置   
 if(char_test(str.charAt(0))==0 )   
  return (1);   
 //首字符必须用字母   
 
 for (i=1;i<str.length;i++)   
 if(str.charAt(i)=='@')   
   {   
    at_symbol=i;   
    break;
   }   
 //检测“@”的位置   
 
 if(at_symbol==str.length-1 || at_symbol==0)   
  return(2);   
 //没有邮件服务器域名   
 
 if(at_symbol<3)   
  return(3);   
 //帐号少于三个字符   
 
 if(at_symbol>19 )   
  return(4);   
 //帐号多于十九个字符   
 
 for(i=1;i<at_symbol;i++)   
 if(char_test(str.charAt(i))==0 && spchar_test(str.charAt(i))==0)   
   return (5);   
 for(i=at_symbol+1;i<str.length;i++)   
 if(char_test(str.charAt(i))==0 && spchar_test(str.charAt(i))==0)   
   return (5);   
 //不能用其它的特殊字符     
    
 for(i=at_symbol+1;i<str.length;i++)   
 if(str.charAt(i)=='.') dot_symbol=i;   
 for(i=at_symbol+1;i<str.length;i++)   
 if(dot_symbol==0 || dot_symbol==str.length-1)   
 //简单的检测有没有“.”,以确定服务器名是否合法   
  return (6);   
  
 return (0);
 //邮件名合法
}
function emailCheck(str) {
 //var st=email_test(str);
 if(str.length==0)
 {alert("请输入Email");}
 else
 {
  if(email_test(str)==1)alert("Email首字符必须用字母");
  if(email_test(str)==2)alert("Email没有邮件服务器域名");
  if(email_test(str)==3)alert("Email帐号少于三个字符 ");
  if(email_test(str)==4)alert("Email帐号多于十九个字符");
  if(email_test(str)==5)alert("Email不能用其它的特殊字符");
  if(email_test(str)==6)alert("简单的检测有没有“.”,以确定服务器名是否合法");
 }
}

 

 <script type="text/javascript" language="javascript" src="js/function.js"></script>

调用<input name="mail" type="text" id="mail" onblur="emailCheck(this.value)" />

posted on 2010-10-20 11:20  黄兆张's Blog  阅读(2192)  评论(0编辑  收藏  举报

导航