java 验证邮箱格式怎么实现

如题所述

public class Test{
public static void main(String[] args){
Test t = new Test();
String email = "test@sina.com" ;
boolean isEmail = t.isEmail(email);
if(isEmail){
System.out.println(email +" is a right email!!!");
}else{
System.out.println("error");
}
}
public boolean isEmail(String email){
//正则表达式
/*
String regex = "^[A-Za-z]{1,40}@[A-Za-z0-9]{1,40}\\.[A-Za-z]{2,3}$";
return email.matches(regex);
*/

//不适用正则
if(email==null||"".equals(email)) return false ;
if(!containsOneWord('@',email)||!containsOneWord('.',email)) return false;
String prefix = email.substring(0,email.indexOf("@"));
String middle = email.substring(email.indexOf("@")+1,email.indexOf("."));
String subfix = email.substring(email.indexOf(".")+1);
System.out.println("prefix="+prefix +" middle="+middle+" subfix="+subfix);

if(prefix==null||prefix.length()>40||prefix.length()==0) return false ;
if(!isAllWords(prefix)) return false ;
if(middle==null||middle.length()>40||middle.length()==0) return false ;
if(!isAllWordsAndNo(middle)) return false ;
if(subfix==null||subfix.length()>3||subfix.length()<2) return false ;
if(!isAllWords(subfix)) return false ;
return true ;
}
//判断字符串只包含指定的一个字符c
private boolean containsOneWord(char c , String word){
char[] array = word.toCharArray();
int count = 0 ;
for(Character ch : array){
if(c == ch) {
count++;
}
}
return count==1 ;
}
//检查一个字符串是否全部是字母
private boolean isAllWords(String prefix){
char[] array = prefix.toCharArray();
for(Character ch : array){
if(ch<'A' || ch>'z' || (ch<'a' && ch>'Z')) return false ;
}
return true;
}
//检查一个字符串是否包含字母和数字
private boolean isAllWordsAndNo(String middle){
char[] array = middle.toCharArray();
for(Character ch : array){
if(ch<'0' || ch > 'z') return false ;
else if(ch >'9' && ch <'A') return false ;
else if(ch >'Z' && ch <'a') return false ;
}
return true ;
}
}
温馨提示:内容为网友见解,仅供参考
无其他回答

如何用java检验电子邮箱格式的合法性?要用到String的方法来判断_百度知 ...
boolean flag = false;int pos = email.indexOf("@");if (pos == -1 || pos == 0 || pos == email.length() - 1) { return false;} String[] strings = email.split("@");if (strings.length != 2) {\/\/ 如果邮箱不是xxx@xxx格式 return false;} CharSequence cs = strings...

问JAVA高手!在java中如何判断E-mail的格式是否正确,请给我一段正确的...
if(form.email.value=="" || !( \/^[^@]+@[^@]+\\.[^@]+$\/.test( form.email.value ))){ alert("请输入正确邮箱!");return false;} } 密码: 请再次输入密码: 邮箱:

java如何验证一个email地址是否真实有效。
首先使用java提供的格式类判断email是否格式有误,然后使用开源框架,验证邮箱是否有用,示例如下:public static boolean checkEmail(String email) { if (!email.matches("[\\\\w\\\\.\\\\-]+@([\\\\w\\\\-]+\\\\.)+[\\\\w\\\\-]+")) { return false; } String host = ""; String ...

如何引用java的这一个验证邮箱地址格式是否正确的类?
if(regexInput.emailFormat(txt_email.getText())){ }else{ dlg.messageDlg("您填写的Email格式错误,请核对后再修改!");\/\/你确定本句能起作用吗?}

java中应用正则表达式判断邮箱格式,如果用户输入格式错误,提醒用户重新...
Pattern p = Pattern.compile("a*b");Matcher m = p.matcher("aaaaab");boolean b = m.matches();这是调用顺序 第一行括号里面是正则表达式。至于正则表达式怎么写 ,你直接百度就好了 有规则的 还有很多别人写好的。最后一行如果是true就代表匹配成功 ...

java 验证邮箱是否存在
一般的验证是 验证邮件地址格式是否正确,如果你需要验证邮箱是否存在就需要发个邮件过去,即使发过去 你也不知道是否存在,除非有邮件返回。所以一般只是验证邮件格式是否正确就可以了。

求能验证一些格式邮箱的正则表达式 hah123@vip.sina.com ;zhao_hui@qq...
这个能验证 hah123@vip.sina.com,zhao_hui@qq.com; 不能验证1234@163.com 我看网易、腾讯、新浪、搜狐注册邮箱都要求第一字符为 英文字母。^[\\w\\.-]+?@([\\w\\-]+\\.){1,2}[a-zA-Z]{2,3} 这个能验证 hah123@vip.sina.com,zhao_hui@qq.com,1234@163.com 不知道你在什么语言...

java 登陆时的验证码怎么做?
Java实现验证码的具体步骤如下:1. 生成随机字符串:可以使用Random类来随机生成字符串,也可以使用UUID等工具。2. 把生成的随机字符串放在图片上:可以使用Java的Graphics2D来绘制文本,并设置字体、颜色等属性。3. 把生成的图片响应给客户端:可以使用ImageIO类来生成图片文件。4. 检验用户输入的验证码...

Java收发邮件过程中具体的功能是怎么实现的
3.2发送邮件的API:Transport类是发送邮件的核心API类,它的实例对象代表实现了某个邮件发送协议的邮件发送对象,例如SMTP协议。接收邮件的API:Store类是接收邮件的核心API类,它的实例对象代表实现了某个邮件接收协议的邮件接收对象,例如POP3协议。3.3Session类 Session类用于定义整个应用程序所需的环境...

java发送邮件时出现的错误,端口什么的都开了
A:多出现在用Wingate代理服务器发送邮件时。虽然在Wingate中“POP3 邮箱帐号”要使用“用户名#POP3地址”的格式,但在“帐户属性”中的“个人信息”中还是要填写一般的格式。 Q:The server says:553 mailbox name not allowed A:收件人邮箱地址不允许,需检查收件人地址是否正确。 Q:the server says:553 sorry, ...

相似回答