Java中利用正规表现判断E-mail的范例代码

//用来判断e-mail地址的一个范例代码 
//e-mail域名的正规表现
private static Pattern PATTERN_EMAIL_DOMAIN_PART = Pattern.compile("^([a-zA-Z0-9][a-zA-Z0-9_-]{0,61}[a-zA-Z0-9]|[a-zA-Z0-9])$");

//e-mailID的正规表现
private static Pattern PATTERN_EMAIL_LOCAL = Pattern.compile("^([a-zA-Z0-9_-][a-zA-Z0-9_//.-]*[a-zA-Z0-9_-]|[a-zA-Z0-9_-])$");

//e-mail最大长度
private static int EMAIL_MAX_LENGTH = 128;

public static boolean checkEmail(String email) {
	
	// 长度检测
	if (email.length() > EMAIL_MAX_LENGTH) {
		return false;
	}

	// '@'个数检测
	String token[] = tokenize(email, "@");
	if (token.length != 2) {
		return false;
	}

	// '.'个数检测
	String local = token[0];
	String domain = token[1];
	token = tokenize(domain, ".");
	if (token.length <= 1) {
		return false;
	}

	// '.'位置检测
	// ドメインは、63文字以下、先頭末尾が英数字、それ以外が英数字"-","_"
	for (int i = 0; i < token.length; i++) {
		if (PATTERN_EMAIL_DOMAIN_PART.matcher(token[i]).matches() == false) {
			return false;
		}
	}

	// ID的先头和末尾文字串为英文、数字"-","_"、其他位置的文字串为英文、数字"-","_","."
	if (PATTERN_EMAIL_LOCAL.matcher(local).matches() == false) {
		return false;
	}
	return true;
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值