JavaScript驗證Email地址

來源:互聯網
上載者:User

電子郵件地址具有以下統一的標準格式:使用者名稱@伺服器網域名稱。

使用者名稱表示郵件信箱、註冊名或信件接收者的使用者標識,@符號後是你使用的郵件伺服器的網域名稱。@可以讀成“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)" />

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.