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) 编辑 收藏 举报