電子郵件地址具有以下統一的標準格式:使用者名稱@伺服器網域名稱。
使用者名稱表示郵件信箱、註冊名或信件接收者的使用者標識,@符號後是你使用的郵件伺服器的網域名稱。@可以讀成“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)" />