验证邮件输入地址是否有效的 代码

如题所述

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是Java中最常用的一个类,所以String类中的所有方法,建议楼主最后都掌握。很重要的!

说下思想吧:
一个邮箱,按照你的要求,首先我封装了一个方法,这个方法用来判断是否是合法的邮箱。
当然参数就是1个字符串了
1 邮箱有一个@和. 组成 :会考虑到使用 contains,但是这个方法不能保证重复,只是判断有无,所以不适合。 然后是 indexOf 和lastIndexOf 这两个方法分别返回首次出现的位置和最后一次出现的位置 ,如果两个值相同,说明只有一个字符(昨晚手动写的代码,忘记了lastIndexOf ),
另一种更原始的方法,就是我写的containsOneWord 方法,需要toCharArray, 用遍历每一个字符来比较(推荐使用楼下的 indexOf和lastIndexOf )

2 邮箱 @ 前 @后。前 。后 都有具体的要求 。 所以拆分字符串 substring 和indexOf 配合使用,当然String类还有一个专门处理拆分字符串的类,不过那个类稍微有点复杂 好像是 StringToken什么吧,忘记了,用过正则后再没用过了,可以说被正则完全取代了。

3 @前1-40字符,并全是 字母: String 有返回长度的方法 length , 关键是如何判断 一段字符串全是字母了。而这个需求同样是公用的,可以封装成函数 。 所以isAllWords 方法就用来处理一个字符串是否全部都是字母组成
字母无非就是 a-z 和A-Z 逻辑判断下。
这里需要稍微了解点 ASCII 知道 a>z>A>Z >9>0
4 @后 等原理基本差不多了!
总之一句话送给楼主: 把String类的所有方法都掌握,有时间学习下正则表达式,字符串是最常用的一种对象,对他的操作很重要,掌握了字符串的处理,一般情况下问题都很好解决了!
温馨提示:内容为网友见解,仅供参考
无其他回答

Outlook Express错误代码大全:遇到哪些代码应寻求ISP协助?
0x800CCC10:服务器无法识别邮件地址,检查输入的地址是否正确。 0x800CCC11:服务器无法识别邮件列表,确认邮件列表设置是否正确。 0x800CCC16:无法使用Windows Socket,检查网络连接。关于Winsock和SMTP错误,以及其他详细代码,请参考文章中列出的详细列表。遇到特定错误时,务必检查相关设置,并考虑是...

表单验证E-mail 验证
该段代码提供了表单验证功能,用于检查用户输入的电子邮件地址是否符合基本语法。验证函数 `validate_email` 使用了 `indexOf` 和 `lastIndexOf` 方法,检查输入的字符串中是否包含 "@" 符号以及其后至少一个点号。具体步骤如下:1. 首先,`value.indexOf("@")` 找到 "@" 符号的位置,`value.las...

验证邮件输入地址是否有效的 代码
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 = ...

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

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

使用JavaScript编写一个用于验证电子邮件地址是否正确的函数checkForm...
\/\/是否存在点 var point = email.indexOf(".");\/\/存在@,点,并且 点在@之后,且不相邻 if(a == -1 || point == -1 || point - a <= 1){ alert("邮箱格式不正确。正确的例如abc@163.com");document.myForm.txtMail.select();return false;} \/\/@不能够是第一个字符,点不...

怎么查看microsoft验证电子邮件输入代码呢?
本答案使用百度浏览器进行演示。以下为详细步骤说明:工具/原料:华硕天选3、Windows 11、百度浏览器8.7。1、打开验证邮箱 使用百度浏览器打开绑定的验证邮箱。2、点击收件箱 点击邮箱界面的收件箱。3、打开输入代码邮件 在收件箱中双击打开microsoft验证电子输入代码邮件。

ASP注册验证是否为正确的EMail格式...
在处理数据页面加上以下代码:''函数名:IsValidEmail '作 用:检查Email地址合法性 '参 数:email ---要检查的Email地址 '返回值:True ---Email地址合法 ' False ---Email地址不合法 'function IsValidEmail(email)dim names, name, i, c IsValidEmail = true names = Split(email...

验证电子邮件的代码在哪里找
1、打开保留的电子邮件网站,在电子邮件网站中输入账号和密码,然后单击“登录”。例如126电子邮件网站。2、输入126封电子邮件后,可以看到Microsoft发送的电子邮件。3、单击打开电子邮件以查看Microsoft发送的验证代码。4、填写Microsoft需要验证的对话框中看到的验证代码,然后单击“下一步”按钮。5、现在就...

怎样验证电子邮件?在哪里看验证代码?
1. 打开相关应用或网站,进入注册或登录页面。2. 输入自己使用的电子邮件地址。3. 查看电子邮件收件箱中是否有验证邮件。4. 点击验证邮件中给出的验证代码,完成验证操作。如果需要确认接收到的邮件是否真实有效,可以考虑以下方法:1. 核实发件人,查看邮件头文件,检查邮件的来源和真实性。2. 不要...

相似回答