日期:2014-05-16  浏览次数:20388 次

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('电子邮件地址非法');
  }
}