我的电子邮件验证不起作用
My Email Validation is not working
这是我的工作屏幕截图:
当我尝试在电子邮件地址前加上 .(点)时,它仍然显示电子邮件发送成功:
正在输入我的验证码:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Validation {
public static boolean isValidEmail(String email)
{
String ePattern = "^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$";
Pattern p = java.util.regex.Pattern.compile(ePattern);
Matcher m = p.matcher(email);
return m.matches();
}
}
您可以使用 JAVA EE 7 API 库来检查电子邮件。借助上面的代码块,您的程序可以验证电子邮件地址输入。
public boolean isValidEmailAddress(String email)
{
boolean result = true;
try
{
InternetAddress emailAddr = new InternetAddress(email);
emailAddr.validate();
}
catch (AddressException ex)
{
result = false;
}
return result;
}
别忘了导入这些:
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
验证通过后,您就可以发送想要的邮件了。
我不确定,但我希望它会有所帮助。
祝你有愉快的一天!
如果我没理解错的话,您的直接问题是验证以点开头的电子邮件;您需要以仅在第一个字符之后允许点的方式来制定条件。例如:
String ePattern = "^[\w-_]+[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$";
更好的方法可能是使用 Apache Commons EmailValidator:
EmailValidator ev = EmailValidator.getInstance();
return ev.isValid(email);
这是 Maven 依赖项:
<dependency>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
<version>1.4.0</version>
</dependency>
这是我的工作屏幕截图:
当我尝试在电子邮件地址前加上 .(点)时,它仍然显示电子邮件发送成功:
正在输入我的验证码:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Validation {
public static boolean isValidEmail(String email)
{
String ePattern = "^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$";
Pattern p = java.util.regex.Pattern.compile(ePattern);
Matcher m = p.matcher(email);
return m.matches();
}
}
您可以使用 JAVA EE 7 API 库来检查电子邮件。借助上面的代码块,您的程序可以验证电子邮件地址输入。
public boolean isValidEmailAddress(String email)
{
boolean result = true;
try
{
InternetAddress emailAddr = new InternetAddress(email);
emailAddr.validate();
}
catch (AddressException ex)
{
result = false;
}
return result;
}
别忘了导入这些:
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
验证通过后,您就可以发送想要的邮件了。 我不确定,但我希望它会有所帮助。
祝你有愉快的一天!
如果我没理解错的话,您的直接问题是验证以点开头的电子邮件;您需要以仅在第一个字符之后允许点的方式来制定条件。例如:
String ePattern = "^[\w-_]+[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$";
更好的方法可能是使用 Apache Commons EmailValidator:
EmailValidator ev = EmailValidator.getInstance();
return ev.isValid(email);
这是 Maven 依赖项:
<dependency>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
<version>1.4.0</version>
</dependency>