JavaScript写的邮箱合法性检查
//校验邮箱地址是否有效
//方法一:使用字符串处理函数验证
function IsEmail(item){
var etext=item;
var elen,i,aa;
elen=etext.length;
if (elen<5)
return true; //字符不够,不合法
i= etext.indexOf("@",0);
if (i==0 || i==-1 || i==elen-1)
return true; //"@"位置错误或没有,不合法
else{
if(etext.indexOf("@",i+1)!=-1)
return true; //存在多个"@"符号,不合法
}
if(etext.indexOf("..",i+1)!=-1)
return true; //存在".."符号,不合法
i=etext.indexOf(".",0);
if(i==0 || i==-1 || etext.charAt(elen-1)=='.')
return true; //"."位置错误或没有,不合法
if( etext.charAt(0)=='-' || etext.charAt(elen-1)=='-')
return true; //"-"位置错误,不合法
if( etext.charAt(0)=='_' || etext.charAt(elen-1)=='_')
return true; //"_"位置错误,不合法
for(i=0;i<=elen-1;i++){
aa=etext.charAt(i);
if(!((aa=='.') || (aa=='@') || (aa=='-') ||(aa=='_') || (aa>='0' && aa<='9') || (aa>='a' && aa<='z') || (aa>='A' && aa<='Z')))
return true; //出现除以上字符之外的字符,不合法
}
if(etext.indexOf("www.",0)==0)
return true; //开头出现"www."字符串,不合法
return false;
}
//测试邮箱地址是否有效
function checkEmail(str){
if(IsEmail(str)){
alert("无效email地址!");
}else{
alert("有效email地址!");
}
}
//方法二:使用正则表达式加字符串处理函数验证
function checkEmail(str) {
var pattern = /^([a-z0-9]+[\.\-_]?)*[a-z0-9]+@[a-z0-9]+[-_]?[a-z0-9]+(\.[a-z0-9]{2,3}){1,2}$/ig;
if(pattern.test(str)) {
if(str.indexOf("www.",0)==0){
alert('电子邮件地址非法');
}else{
alert('电子邮件地址合法');
}
} else {
alert('电子邮件地址非法');
}
}