找了一些门户网站的邮箱格式:
新浪:4-16个字符,可使用英文小写、数字、下划线,下划线不能在首尾。
搜狐:4-16位,数字、小写字母、点、减号或下划线,小写字母开头。
腾讯:由3-18个英文、数字、点、减号、下划线组成。网易:6~18个字符,可使用字母、数字、下划线,需以字母开头。
谷歌:您可以使用字母、数字和英文句点,请勿使用除字母 (a-z)、数字和英文句号外的其他字符。
央视:6~20个字符,包括英文字母(小写)数字-_,首尾字符须为字母或数字,且邮箱名不能为纯数字。
TOM: 6-18个字符,仅支持字母、数字及“.”、”-”、”_”,不能全部数字或下划线。
得出通用的邮箱标准: 长度不限,可以使用英文(包括大小写)、数字、点号、下划线、减号,首字母必须是字母或数字;
比如有以下邮箱格式:
xxxyyy@zzz.com.cn; 其中"x"可以是纯数字,也可以是纯字母,也可以是数字与字母的组合;"y"可以是纯数字,可以是纯字母,也可以是数字、字母和指定字符的组合;
"z"可以是纯数字,可以是纯字母,也可以是数字、字母和指定字符"-"的组合, 但不能以字符"-"开头和结尾;
最后的.com和.cn是可以互换位置的,然后也可以只有.com没有.cn或只有.cn没有.com
得出通用的邮箱标准java正则表达式:
email.matches("^[a-z0-9A-Z]+[- | a-z0-9A-Z . _]+@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-z]{2,}$")
得出通用的邮箱校验方法:
/**
* 检查邮箱是否合法
*/
private static Boolean checkEmail(String email) {
if (email.matches("^[a-z0-9A-Z]+[- | a-z0-9A-Z . _]+@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-z]{2,}$")) {
return true;
} else {
return false;
}
}