解析一个邮箱地址的合法性

1、jquery解析

//验证邮箱
    function vailEmail(){
      var email = jQuery("#email").val();
      var flag = false;
      var message = "";
      var myreg = /^([\.a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/; 
      if(email ==''){
        message = "邮箱不能为空!";
      }else if(!myreg.test(email)){
        message = "请输入有效的邮箱地址!";
      }else if(checkEmailIsExist()){
        message = "该邮箱地址已经被注册!";
      }else{
        flag = true;
      }
      if(!flag){
         //错误提示
        //jQuery("#emailDiv").removeClass().addClass("ui-form-item has-error");
        // jQuery("#emailP").html("");
        //jQuery("#emailP").html("<i class=\"icon-error ui-margin-right10\"> <\/i>"+message);
        //jQuery("#email").focus();
      }else{
        //正确提示
        //jQuery("#emailDiv").removeClass().addClass("ui-form-item has-success");
        //jQuery("#emailP").html("");
        //jQuery("#emailP").html("<i class=\"icon-success ui-margin-right10\"> <\/i>该邮箱可用");
      }
      return flag;
    }

2、java代码解析

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MailTest 
{
    public static void main(String[] args)
    {
        MailTest mt = new MailTest();
        mt.testMail("liu9306l@d.123..456");
    }

    public Boolean testMail(String s)
    {
        if(s.matches("^[a-zA-Z0-9][([a-zA-Z0-9]|_)]+@([(a-zA-Z0-9)]+\\.)+[a-zA-Z0-9]+[a-zA-Z0-9]$"))
        {
            String[] sub = s.split("@");
            System.out.println("用户名: " + sub[0]);
            System.out.println("域名:" + sub[1]);
            return true;
        }

        //是否含有@
        if(!s.contains("@"))
        {
            System.out.println("邮箱中不含有 @");
            return false;
        }

        //判断是否有多个@
        int index = s.indexOf("@");
        if(s.substring(index + 1,s.length()).contains("@"))
        {
            System.out.println("邮箱中含有多个 @");
            return false;
        }

        //判断用户名中是否有非法字符
        String sub = s.substring(0, index);


        Pattern p = Pattern.compile("[^(\\w|_)]");
        Matcher m = p.matcher(sub);
        if(m.find())
        {
            //System.out.println(m.group());
            System.out.println("邮箱用户名中含有非法字符");
            return false;
        }
        //其它错误
        String domainSub = s.substring(index + 1,s.length());


        if(!domainSub.matches("^([(a-zA-Z0-9)]+\\.)+[a-zA-Z0-9]+[a-zA-Z0-9]$"))
        {
            System.out.println("域名出现错误");
            return false;
        }
        System.out.println("存在其他的错误");
        return true;
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值