Merge pull request #11105 from gupta-ashu01/master
BAEL-4932-Email Validation in Java
This commit is contained in:
commit
cd3c5e3ee5
@ -32,6 +32,11 @@
|
|||||||
<artifactId>junit-jupiter</artifactId>
|
<artifactId>junit-jupiter</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>commons-validator</groupId>
|
||||||
|
<artifactId>commons-validator</artifactId>
|
||||||
|
<version>${validator.version}</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
@ -59,6 +64,7 @@
|
|||||||
<properties>
|
<properties>
|
||||||
<assertj.version>3.6.1</assertj.version>
|
<assertj.version>3.6.1</assertj.version>
|
||||||
<guava.version>28.1-jre</guava.version>
|
<guava.version>28.1-jre</guava.version>
|
||||||
|
<validator.version>1.7</validator.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
package com.baeldung.emailvalidation;
|
||||||
|
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
public class EmailValidation {
|
||||||
|
|
||||||
|
public static boolean patternMatches(String emailAddress, String regexPattern) {
|
||||||
|
return Pattern.compile(regexPattern)
|
||||||
|
.matcher(emailAddress)
|
||||||
|
.matches();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,79 @@
|
|||||||
|
package com.baeldung.emailvalidation;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
import org.apache.commons.validator.routines.EmailValidator;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class EmailValidationUnitTest {
|
||||||
|
|
||||||
|
private String emailAddress;
|
||||||
|
private String regexPattern;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUsingEmailValidator() {
|
||||||
|
emailAddress = "username@domain.com";
|
||||||
|
assertTrue(EmailValidator.getInstance()
|
||||||
|
.isValid(emailAddress));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUsingSimpleRegex() {
|
||||||
|
emailAddress = "username@domain.com";
|
||||||
|
regexPattern = "^(.+)@(\\S+)$";
|
||||||
|
assertTrue(EmailValidation.patternMatches(emailAddress, regexPattern));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUsingStrictRegex() {
|
||||||
|
emailAddress = "username@domain.com";
|
||||||
|
regexPattern = "^(?=.{1,64}@)[A-Za-z0-9_-]+(\\.[A-Za-z0-9_-]+)*@"
|
||||||
|
+ "[^-][A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*(\\.[A-Za-z]{2,})$";
|
||||||
|
assertTrue(EmailValidation.patternMatches(emailAddress, regexPattern));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUsingUnicodeRegex() {
|
||||||
|
emailAddress = "用户名@领域.电脑";
|
||||||
|
regexPattern = "^(?=.{1,64}@)[\\p{L}0-9_-]+(\\.[\\p{L}0-9_-]+)*@"
|
||||||
|
+ "[^-][\\p{L}0-9-]+(\\.[\\p{L}0-9-]+)*(\\.[\\p{L}]{2,})$";
|
||||||
|
assertTrue(EmailValidation.patternMatches(emailAddress, regexPattern));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUsingRFC5322Regex() {
|
||||||
|
emailAddress = "username@domain.com";
|
||||||
|
regexPattern = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$";
|
||||||
|
assertTrue(EmailValidation.patternMatches(emailAddress, regexPattern));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testRestrictDots() {
|
||||||
|
emailAddress = "username@domain.com";
|
||||||
|
regexPattern = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+(?:\\.[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+)*@"
|
||||||
|
+ "[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$";
|
||||||
|
assertTrue(EmailValidation.patternMatches(emailAddress, regexPattern));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testOwaspValidation() {
|
||||||
|
emailAddress = "username@domain.com";
|
||||||
|
regexPattern = "^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$";
|
||||||
|
assertTrue(EmailValidation.patternMatches(emailAddress, regexPattern));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testTopLevelDomain() {
|
||||||
|
emailAddress = "username@domain.com";
|
||||||
|
regexPattern = "^[\\w!#$%&'*+/=?`{|}~^-]+(?:\\.[\\w!#$%&'*+/=?`{|}~^-]+)*"
|
||||||
|
+ "@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$";
|
||||||
|
assertTrue(EmailValidation.patternMatches(emailAddress, regexPattern));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGmailSpecialCase() {
|
||||||
|
emailAddress = "username+something@domain.com";
|
||||||
|
regexPattern = "^(?=.{1,64}@)[A-Za-z0-9\\+_-]+(\\.[A-Za-z0-9\\+_-]+)*@"
|
||||||
|
+ "[^-][A-Za-z0-9\\+-]+(\\.[A-Za-z0-9\\+-]+)*(\\.[A-Za-z]{2,})$";
|
||||||
|
assertTrue(EmailValidation.patternMatches(emailAddress, regexPattern));
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user