不用正则表达式判断邮箱地址是否合法
2017-03-07 20:21
549 查看
package demo3_7; public class CheckEmail { /* * 用Scanner,String判断邮箱地址是否符合规则 有且只有一个@ 首字母必须是字母/_ 其他字母,字母/数字/_ @后是域名,长度1--10之间 域名后缀com/com.cn/cn */ public static void main(String[] args) { String[] emails = new String[]{ "dsfadd@fds@df.com.cn", "sdffd#s@com.com", "dsfdscom.com.cn", "213dsfds@.cn", "@wee.cn", " @wee.cn@", "a12345@163.com" }; for(int i=0; i<emails.length; i++) { //判断@符号 if(!checkAt(emails[i])) { System.out.println(emails[i]+"--@符号不合法"); continue; } //判断首字母 if(!checkFirst(emails[i])) { System.out.println(emails[i]+"--首字母不合法"); continue; } //判断其他的字母,后缀除去 if(!checkOther(emails[i])) { System.out.println(emails[i]+"--其他字母不合法"); continue; } //@后是域名,长度1--10之间 if(!checkDomain(emails[i])) { System.out.println(emails[i]+"--域名长度不合法"); continue; } //判断后缀 if(!checkEnd(emails[i])) { System.out.println(emails[i]+"--后缀不合法"); continue; } System.out.println("合法的邮箱地址:"+emails[i]); } } /** * 检查.到最后的子字符串 * @param string * @return */ private static boolean checkEnd(String email) { boolean flag = false; String subString = email.substring(email.indexOf(".")+1); if("com".equals(subString)||"com.cn".equals(subString)||"cn".equals(subString)) { flag = true; } return flag; } /** * 检查域名长度 * @param string * @return */ private static boolean checkDomain(String email) { boolean flag = false; //.在@后 if(email.indexOf(".")>email.indexOf("@")) { //@和.之间的子字符串的长度<=10 String subString = email.substring(email.indexOf("@")+1,email.indexOf(".")); if(subString.length()<=10) { flag = true; } } return flag; } /** * 判断其他字母 * 切割子字符串,0到第一个.的位置 * @param string * @return */ private static boolean checkOther(String email) { boolean flag = true; if(email.indexOf(".")>0) { String subString = email.substring(0, email.indexOf(".")); System.out.println("subString:"+subString); char[] chars = subString.toCharArray(); //跳过首字母 for(int i=1; i<chars.length; i++) { int a = chars[i]; //跳过@符号 if(a==64) { continue; } if(!((a>=65&&a<=90)||(a==95)||(a>=97&&a<=122)||(a>=48&&a<=57))) { flag = false; } } } else { flag = false; } return flag; } /** * 判断首字母,是字母或者下划线 * @param string * @return */ private static boolean checkFirst(String email) { boolean flag = false; char c = email.charAt(0); int i = c; if((i>=65&&i<=90)||(i==95)||(i>=97&&i<=122)) { flag = true; } return flag; } /** * 检查email地址中有且只有一个@符号,并@前后都应该有内容 * @param string * @return */ private static boolean checkAt(String email) { boolean flag = true; if(email.indexOf("@")>0&&(email.indexOf("@")==email.lastIndexOf("@"))) { //只有一个@符号 String[] strs = email.split("@"); for (int i = 0; i < strs.length; i++) { if(strs[i].trim().length()==0) { flag = false; break; } } } else { flag = false; } return flag; } }
相关文章推荐
- PHP判断邮箱地址是否合法的正则表达式
- javascript正则表达式判断邮箱地址是否合法
- ife2015-task0002 正则表达式判断是否为邮箱地址或电话号码
- iOS开发正则表达式判断邮箱是否合法
- 用正则表达式判断邮箱命名是否合法
- 正则表达式测试邮箱地址是否合法
- VB.net中使用正则表达式验证邮箱地址是否合法
- 判断Email 地址是否合法的正则表达式
- 利用正则表达式判断手机号码格式是否合法
- 利用正则表达式判断四则运算表达式是否合法
- 正则表达式验证EMAIL邮箱是否合法
- Java 中文本组件MQDocument文档:采用正则表达式来判断输入是否合法
- C#判断IP地址是否合法函数-使用正则表达式-2个
- ios正则表达式判断邮箱格式是否正确
- C# 判断一字符串是否为合法数字(正则表达式)
- java 正则表达式判断 qq号是否合法
- C#判断IP地址是否合法函数-使用正则表达式-2个,还有IPAddress
- 用正则表达式判断时间是否合法
- ios判断邮箱,手机号码,车牌号是否合法(正则表达)
- 判断url是否合法的正则表达式