Email Regular Expression Pattern
Description
The combination means, email
address must start with “_A-Za-z0-9-\\+” , optional follow by
“.[_A-Za-z0-9-]“, and end with a “@” symbol. The email’s domain name
must start with “A-Za-z0-9-”, follow by first level Tld (.com, .net)
“.[A-Za-z0-9]” and optional follow by a second level Tld (.com.au,
.com.my) “\\.[A-Za-z]{2,}”, where second level Tld must start with a dot
“.” and length must equal or more than 2 characters.
2. Valid Emails
1. javatyro@yahoo.com, javatyro-100@yahoo.com, javatyro.100@yahoo.com
2. javatyro111@javatyro.com, javatyro-100@javatyro.net, javatyro.100@javatyro.com.au
3. javatyro@1.com, javatyro@gmail.com.com
4. javatyro+100@gmail.com, javatyro-100@yahoo-test.com
3. Invalid Emails
1. javatyro – must contains “@” symbol
2. javatyro@.com.my – tld can not start with dot “.”
3. javatyro123@gmail.a – “.a” is not a valid tld, last tld must contains at least two characters
4. javatyro123@.com – tld can not start with dot “.”
5. javatyro123@.com.com – tld can not start with dot “.”
6. .javatyro@javatyro.com – email’s first character can not start with dot “.”
7. javatyro()*@gmail.com – email’s is only allow character, digit, underscore and dash
8. javatyro@%*.com – email’s tld is only allow character and digit
9. javatyro..2002@gmail.com – double dots “.” are not allow
10. javatyro.@gmail.com – email’s last character can not end with dot “.”
11. javatyro@javatyro@gmail.com – double “@” is not allow
12. javatyro@gmail.com.1a -email’s tld which has two characters can not contains digit
4. Unit Test
Here’s a unit test using testNG.
Here’s the unit test result.
^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)* @[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$;
^ #start of the line [_A-Za-z0-9-\\+]+ # must start with string in the bracket [ ], must contains one or more (+) ( # start of group #1 \\.[_A-Za-z0-9-]+ # follow by a dot "." and string in the bracket [ ], must contains one or more (+) )* # end of group #1, this group is optional (*) @ # must contains a "@" symbol [A-Za-z0-9-]+ # follow by string in the bracket [ ], must contains one or more (+) ( # start of group #2 - first level TLD checking \\.[A-Za-z0-9]+ # follow by a dot "." and string in the bracket [ ], must contains one or more (+) )* # end of group #2, this group is optional (*) ( # start of group #3 - second level TLD checking \\.[A-Za-z]{2,} # follow by a dot "." and string in the bracket [ ], with minimum length of 2 ) # end of group #3 $ #end of the line
1. Java Regular Expression Example
Here’s a Java example to show you how to use regex to validate email address.
EmailValidator.java
package com.mkyong.regex; import java.util.regex.Matcher; import java.util.regex.Pattern; public class EmailValidator { private Pattern pattern; private Matcher matcher; private static final String EMAIL_PATTERN = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@" + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"; public EmailValidator() { pattern = Pattern.compile(EMAIL_PATTERN); } /** * Validate hex with regular expression * * @param hex * hex for validation * @return true valid hex, false invalid hex */ public boolean validate(final String hex) { matcher = pattern.matcher(hex); return matcher.matches(); } }
2. Valid Emails
1. javatyro@yahoo.com, javatyro-100@yahoo.com, javatyro.100@yahoo.com
2. javatyro111@javatyro.com, javatyro-100@javatyro.net, javatyro.100@javatyro.com.au
3. javatyro@1.com, javatyro@gmail.com.com
4. javatyro+100@gmail.com, javatyro-100@yahoo-test.com
3. Invalid Emails
1. javatyro – must contains “@” symbol
2. javatyro@.com.my – tld can not start with dot “.”
3. javatyro123@gmail.a – “.a” is not a valid tld, last tld must contains at least two characters
4. javatyro123@.com – tld can not start with dot “.”
5. javatyro123@.com.com – tld can not start with dot “.”
6. .javatyro@javatyro.com – email’s first character can not start with dot “.”
7. javatyro()*@gmail.com – email’s is only allow character, digit, underscore and dash
8. javatyro@%*.com – email’s tld is only allow character and digit
9. javatyro..2002@gmail.com – double dots “.” are not allow
10. javatyro.@gmail.com – email’s last character can not end with dot “.”
11. javatyro@javatyro@gmail.com – double “@” is not allow
12. javatyro@gmail.com.1a -email’s tld which has two characters can not contains digit
4. Unit Test
Here’s a unit test using testNG.
EmailValidatorTest.java
package com.javatyro.regex; import org.testng.Assert; import org.testng.annotations.*; /** * Email validator Testing * * @author javatyro * */ public class EmailValidatorTest { private EmailValidator emailValidator; @BeforeClass public void initData() { emailValidator = new EmailValidator(); } @DataProvider public Object[][] ValidEmailProvider() { return new Object[][] { { new String[] { "javatyro@yahoo.com", "javatyro-100@yahoo.com", "javatyro.100@yahoo.com", "javatyro111@javatyro.com", "javatyro-100@javatyro.net", "javatyro.100@javatyro.com.au", "javatyro@1.com", "javatyro@gmail.com.com", "javatyro+100@gmail.com", "javatyro-100@yahoo-test.com" } } }; } @DataProvider public Object[][] InvalidEmailProvider() { return new Object[][] { { new String[] { "javatyro", "javatyro@.com.my", "javatyro123@gmail.a", "javatyro123@.com", "javatyro123@.com.com", ".javatyro@javatyro.com", "javatyro()*@gmail.com", "javatyro@%*.com", "javatyro..2002@gmail.com", "javatyro.@gmail.com", "javatyro@javatyro@gmail.com", "javatyro@gmail.com.1a" } } }; } @Test(dataProvider = "ValidEmailProvider") public void ValidEmailTest(String[] Email) { for (String temp : Email) { boolean valid = emailValidator.validate(temp); System.out.println("Email is valid : " + temp + " , " + valid); Assert.assertEquals(valid, true); } } @Test(dataProvider = "InvalidEmailProvider", dependsOnMethods = "ValidEmailTest") public void InValidEmailTest(String[] Email) { for (String temp : Email) { boolean valid = emailValidator.validate(temp); System.out.println("Email is valid : " + temp + " , " + valid); Assert.assertEquals(valid, false); } }}
Here’s the unit test result.
Email is valid : javatyro@yahoo.com , true Email is valid : javatyro-100@yahoo.com , true Email is valid : javatyro.100@yahoo.com , true Email is valid : javatyro111@javatyro.com , true Email is valid : javatyro-100@javatyro.net , true Email is valid : javatyro.100@javatyro.com.au , true Email is valid : javatyro@1.com , true Email is valid : javatyro@gmail.com.com , true Email is valid : javatyro+100@gmail.com , true Email is valid : javatyro-100@yahoo-test.com , true Email is valid : javatyro , false Email is valid : javatyro@.com.my , false Email is valid : javatyro123@gmail.a , false Email is valid : javatyro123@.com , false Email is valid : javatyro123@.com.com , false Email is valid : .javatyro@javatyro.com , false Email is valid : javatyro()*@gmail.com , false Email is valid : javatyro@%*.com , false Email is valid : javatyro..2002@gmail.com , false Email is valid : javatyro.@gmail.com , false Email is valid : javatyro@javatyro@gmail.com , false Email is valid : javatyro@gmail.com.1a , false PASSED: ValidEmailTest([Ljava.lang.String;@15f48262) PASSED: InValidEmailTest([Ljava.lang.String;@789934d4) =============================================== Default test Tests run: 2, Failures: 0, Skips: 0 ===============================================
Great information. Thank you for posting.
ReplyDeleteconverse outlet
ReplyDeletecoach factory outlet
retro jordans
supreme hoodie
longchamp
yeezy 700
off white nike
goyard handbags
timberland boots
kate spade handbags
Get the facts learn this here now that site her response blog link replica gucci handbags
ReplyDelete