Today we will look into java email validation program. Sometimes we have to validate email address and we can use email regex for that. In the last post, I explained about java regular expression in detail with some examples. In this real-life example, I am trying to validate email addresses using java regular expression.
今天,我们将研究Java电子邮件验证程序。 有时我们必须验证电子邮件地址,并且可以为此使用电子邮件正则表达式。 在上一篇文章中,我通过一些示例详细解释了Java正则表达式 。 在这个真实的示例中,我尝试使用Java正则表达式来验证电子邮件地址。
Java电子邮件验证 (Java email validation)
If you look at the Wikipedia article for valid email address, it supports a lot of special characters. But to cover most of the valid email addresses, I am assuming an email address to consist of characters, digits and special characters +,-,. and _. Also, every email address must contain only one @ symbol.
如果您在Wikipedia文章中查找有效的电子邮件地址 ,则它支持许多特殊字符。 但是,为了覆盖大多数有效的电子邮件地址,我假设电子邮件地址包含字符,数字和特殊字符+,-、。 和_。 另外,每个电子邮件地址都只能包含一个@符号。
For the domain name, we can have subdomains also. So a subdomain can contain characters, digits and special characters – and _. Again subdomain can be of multiple levels like . So middle-level TLDs must start with a period (.) and it can contain characters, digits and special characters – and _. The last TLD should be of minimum length 2 and can contain words only.
对于域名,我们也可以有子域。 因此,子域可以包含字符,数字和特殊字符–和_。 同样,子域可以具有多个级别,例如 。 因此,中级*域名(TLD)必须以句点(。)开头,并且可以包含字符,数字和特殊字符-和_。 最后一个TLD的最小长度应为2,并且只能包含单词。
One more important thing to note is that email addresses are case insensitive. So we will use a case insensitive flag to create the pattern object.
需要注意的另一件事是电子邮件地址不区分大小写。 因此,我们将使用不区分大小写的标志来创建模式对象。
有效的电子邮件地址示例 (Valid email addresses example)
Taking all these into account some valid email addresses are:
考虑到所有这些因素,一些有效的电子邮件地址是:
- journaldev@, journaldev-100@, journaldev.100@ journaldev@,journaldev-100@,journaldev.100@
- journaldev111@, journaldev-100@,journaldev.100@ journaldev111@,journaldev-100 @ ,journaldev.100 @
- journaldev@,journaldev@, journaldev+100@ journaldev @ ,journaldev @ ,journaldev+100@
- journaldev-100@, journaldev_100@ journaldev-100@,journaldev_100@
无效的电子邮件地址示例 (Invalid email addresses example)
Now let’s see some invalid email addresses are reason for them to be invalid.
现在,让我们看看一些无效的电子邮件地址是它们无效的原因。
- journaldev – No @ symbole journaldev –否@ symbole
- journaldev@. – Dot after @ symbol journaldev @ . – @符号后的点
- journaldev123@ – last TLD length is less than 2 journaldev123@ –最近的TLD长度小于2
- journaldev123@@. – Two @ symbols journaldev123 @@。 –两个@符号
- .journaldev@ – ID can’t start with . .journaldev @ – ID不能以开头。
- journaldev()*@ – invalid special characters in the ID journaldev()* @ – ID中的无效特殊字符
- journaldev@%*.com – invalid special characters in the TLD journaldev@%*.com – TLD中的无效特殊字符
- journaldev..2002@ – ID can’t have two dots journaldev..2002 @ – ID不能有两个点
- journaldev.@ – ID can’t end with dot journaldev。@ – ID不能以点号结尾
- journaldev@journaldev@ – Two @ symbols journaldev @ journaldev @ –两个@符号
- journaldev@.1a – last TLD can have characters only journaldev@.1a –最后一个TLD只能包含字符
电子邮件Regex Java程序 (Email Regex Java Program)
So using all the information for email validation in java, I have written the EmailValidator class that can be used to validate email address using a regular expression.
因此,使用Java中的所有信息进行电子邮件验证,我编写了EmailValidator类,该类可用于使用正则表达式来验证电子邮件地址。
package ;
import ;
import ;
/**
* Java email validation program
*
* @author pankaj
*
*/
public class EmailValidator {
// Email Regex java
private static final String EMAIL_REGEX = "^[\\w-\\+]+(\\.[\\w]+)*@[\\w-]+(\\.[\\w]+)*(\\.[a-z]{2,})$";
// static Pattern object, since pattern is fixed
private static Pattern pattern;
// non-static Matcher object because it's created from the input String
private Matcher matcher;
public EmailValidator() {
// initialize the Pattern object
pattern = (EMAIL_REGEX, Pattern.CASE_INSENSITIVE);
}
/**
* This method validates the input email address with EMAIL_REGEX pattern
*
* @param email
* @return boolean
*/
public boolean validateEmail(String email) {
matcher = (email);
return ();
}
}
Now, we will test this email regex java class using another Class EmailValidatorTest
.
现在,我们将使用另一个Class EmailValidatorTest
来测试此电子邮件正则表达式Java类。
package ;
public class EmailValidatorTest {
// list of valid email addresses
private static final String[] validEmailIds = new String[] { "journaldev@", "journaldev-100@",
"journaldev.100@", "journaldev111@", "journaldev-100@",
"journaldev.100@", "journaldev@", "journaldev@",
"journaldev+100@", "journaldev-100@", "journaldev_100@" };
// list of invalid email addresses
private static final String[] invalidEmailIds = new String[] { "journaldev", "journaldev@.",
"journaldev123@", "journaldev123@.com", "journaldev123@.", ".journaldev@",
"journaldev()*@", "journaldev@%*.com", "journaldev..2002@", "journaldev.@",
"journaldev@journaldev@", "journaldev@.1a" };
private static EmailValidator emailValidator;
public static void main(String args[]) {
emailValidator = new EmailValidator();
for (String temp : validEmailIds) {
boolean valid = (temp);
("Email ID " + temp + " is valid? " + valid);
}
("\n\n");
for (String temp : invalidEmailIds) {
boolean valid = (temp);
("Email ID " + temp + " is valid? " + valid);
}
}
}
The output of the above java email validation example program is shown in the below image.
下图显示了上述Java电子邮件验证示例程序的输出。
Email ID journaldev@ is valid? true
Email ID journaldev-100@ is valid? true
Email ID journaldev.100@ is valid? true
Email ID journaldev111@ is valid? true
Email ID journaldev-100@ is valid? true
Email ID journaldev.100@ is valid? true
Email ID journaldev@ is valid? true
Email ID journaldev@ is valid? true
Email ID journaldev+100@ is valid? true
Email ID journaldev-100@ is valid? true
Email ID journaldev_100@ is valid? true
Email ID journaldev is valid? false
Email ID journaldev@. is valid? false
Email ID journaldev123@ is valid? false
Email ID journaldev123@.com is valid? false
Email ID journaldev123@. is valid? false
Email ID .journaldev@ is valid? false
Email ID journaldev()*@ is valid? false
Email ID journaldev@%*.com is valid? false
Email ID journaldev..2002@ is valid? false
Email ID journaldev.@ is valid? false
Email ID journaldev@journaldev@ is valid? false
Email ID journaldev@.1a is valid? false
So it seems that our email regex java program is working as expected, you can extend it easily if you want to add some more special characters. That’s all about java email validation example.
因此,我们的电子邮件正则表达式Java程序似乎可以正常运行,如果您想添加更多特殊字符,则可以轻松扩展它。 这就是有关Java电子邮件验证示例的全部内容。
翻译自: /638/java-email-validation-regex