From f7a4cd08616f32864107feebfde41e37a1c2991d Mon Sep 17 00:00:00 2001 From: Ashish Gupta <30566001+gupta-ashu01@users.noreply.github.com> Date: Sat, 7 Aug 2021 12:33:12 +0530 Subject: [PATCH 1/9] Update pom.xml --- core-java-modules/core-java-string-algorithms-3/pom.xml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core-java-modules/core-java-string-algorithms-3/pom.xml b/core-java-modules/core-java-string-algorithms-3/pom.xml index c8243258c1..6d1c0b0e48 100644 --- a/core-java-modules/core-java-string-algorithms-3/pom.xml +++ b/core-java-modules/core-java-string-algorithms-3/pom.xml @@ -32,6 +32,11 @@ junit-jupiter test + + commons-validator + commons-validator + ${validator.version} + @@ -59,6 +64,7 @@ 3.6.1 28.1-jre + 1.7 - \ No newline at end of file + From 72b4a568b41a56822d21121b6dce75c78a8fcdc8 Mon Sep 17 00:00:00 2001 From: Ashish Gupta <30566001+gupta-ashu01@users.noreply.github.com> Date: Sat, 7 Aug 2021 12:34:38 +0530 Subject: [PATCH 2/9] Add files via upload --- .../emailvalidation/EmailValidation.java | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 core-java-modules/core-java-string-algorithms-3/src/main/java/com/baeldung/emailvalidation/EmailValidation.java diff --git a/core-java-modules/core-java-string-algorithms-3/src/main/java/com/baeldung/emailvalidation/EmailValidation.java b/core-java-modules/core-java-string-algorithms-3/src/main/java/com/baeldung/emailvalidation/EmailValidation.java new file mode 100644 index 0000000000..97d1b90ff3 --- /dev/null +++ b/core-java-modules/core-java-string-algorithms-3/src/main/java/com/baeldung/emailvalidation/EmailValidation.java @@ -0,0 +1,64 @@ +package com.baeldung.emailvalidation; + +import java.util.regex.Pattern; + +public class EmailValidation { + + private static String regexPattern; + + public static boolean usingSimpleRegex(String emailAddress) { + regexPattern = "^(.+)@(\\S+)$"; + + return Pattern.compile(regexPattern) + .matcher(emailAddress) + .matches(); + } + + public static boolean usingStrictRegex(String emailAddress) { + regexPattern = "^(?=.{1,64}@)[A-Za-z0-9_-]+(\\.[A-Za-z0-9_-]+)*@" + "[^-][A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*(\\.[A-Za-z]{2,})$"; + + return Pattern.compile(regexPattern) + .matcher(emailAddress) + .matches(); + } + + public static boolean usingUnicodeRegex(String emailAddress) { + regexPattern = "^(?=.{1,64}@)[\\p{L}0-9_-]+(\\.[\\p{L}0-9_-]+)*@" + "[^-][\\p{L}0-9-]+(\\.[\\p{L}0-9-]+)*(\\.[\\p{L}]{2,})$"; + + return Pattern.compile(regexPattern) + .matcher(emailAddress) + .matches(); + } + + public static boolean usingRFC5322Regex(String emailAddress) { + regexPattern = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$"; + + return Pattern.compile(regexPattern) + .matcher(emailAddress) + .matches(); + } + + public static boolean restrictDots(String emailAddress) { + regexPattern = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+(?:\\.[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+)*@" + "[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$"; + + return Pattern.compile(regexPattern) + .matcher(emailAddress) + .matches(); + } + + public static boolean owaspValidation(String emailAddress) { + regexPattern = "^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$"; + + return Pattern.compile(regexPattern) + .matcher(emailAddress) + .matches(); + } + + public static boolean topLevelDomain(String emailAddress) { + regexPattern = "^[\\w!#$%&'*+/=?`{|}~^-]+(?:\\.[\\w!#$%&'*+/=?`{|}~^-]+)*" + "@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$"; + + return Pattern.compile(regexPattern) + .matcher(emailAddress) + .matches(); + } +} \ No newline at end of file From 09e94ba8506c715758ff865974fc376013282e48 Mon Sep 17 00:00:00 2001 From: Ashish Gupta <30566001+gupta-ashu01@users.noreply.github.com> Date: Sat, 7 Aug 2021 12:38:09 +0530 Subject: [PATCH 3/9] Add files via upload --- .../EmailValidationUnitTest.java | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 core-java-modules/core-java-string-algorithms-3/src/test/java/com/baeldung/emailvalidation/EmailValidationUnitTest.java diff --git a/core-java-modules/core-java-string-algorithms-3/src/test/java/com/baeldung/emailvalidation/EmailValidationUnitTest.java b/core-java-modules/core-java-string-algorithms-3/src/test/java/com/baeldung/emailvalidation/EmailValidationUnitTest.java new file mode 100644 index 0000000000..3b2b77fc4a --- /dev/null +++ b/core-java-modules/core-java-string-algorithms-3/src/test/java/com/baeldung/emailvalidation/EmailValidationUnitTest.java @@ -0,0 +1,59 @@ +package com.baeldung.emailvalidation; + +import static org.junit.Assert.assertEquals; +import org.apache.commons.validator.routines.EmailValidator; +import org.junit.Test; + +public class EmailValidationUnitTest { + + private String emailAddress; + + @Test + public void testUsingEmailValidator() { + emailAddress = "username@domain.com"; + assertEquals(EmailValidator.getInstance() + .isValid(emailAddress), true); + } + + @Test + public void testUsingSimpleRegex() { + emailAddress = "username@domain.com"; + assertEquals(EmailValidation.usingSimpleRegex(emailAddress), true); + } + + @Test + public void testUsingStrictRegex() { + emailAddress = "username@domain.com"; + assertEquals(EmailValidation.usingStrictRegex(emailAddress), true); + } + + @Test + public void testUsingUnicodeRegex() { + emailAddress = "用户名@领域.电脑"; + assertEquals(EmailValidation.usingUnicodeRegex(emailAddress), true); + } + + @Test + public void testUsingRFC5322Regex() { + emailAddress = "username@domain.com"; + assertEquals(EmailValidation.usingRFC5322Regex(emailAddress), true); + } + + @Test + public void testRestrictDots() { + emailAddress = "username@domain.com"; + assertEquals(EmailValidation.restrictDots(emailAddress), true); + } + + @Test + public void testOwaspValidation() { + emailAddress = "username@domain.com"; + assertEquals(EmailValidation.owaspValidation(emailAddress), true); + } + + @Test + public void testTopLevelDomain() { + emailAddress = "username@domain.com"; + assertEquals(EmailValidation.topLevelDomain(emailAddress), true); + } +} \ No newline at end of file From 5d53c221605797c8ab061cee60661dba649ed5a2 Mon Sep 17 00:00:00 2001 From: Ashish Gupta <30566001+gupta-ashu01@users.noreply.github.com> Date: Mon, 16 Aug 2021 11:50:58 +0530 Subject: [PATCH 4/9] Update EmailValidation.java --- .../emailvalidation/EmailValidation.java | 56 +------------------ 1 file changed, 2 insertions(+), 54 deletions(-) diff --git a/core-java-modules/core-java-string-algorithms-3/src/main/java/com/baeldung/emailvalidation/EmailValidation.java b/core-java-modules/core-java-string-algorithms-3/src/main/java/com/baeldung/emailvalidation/EmailValidation.java index 97d1b90ff3..4d68ea9c55 100644 --- a/core-java-modules/core-java-string-algorithms-3/src/main/java/com/baeldung/emailvalidation/EmailValidation.java +++ b/core-java-modules/core-java-string-algorithms-3/src/main/java/com/baeldung/emailvalidation/EmailValidation.java @@ -4,61 +4,9 @@ import java.util.regex.Pattern; public class EmailValidation { - private static String regexPattern; - - public static boolean usingSimpleRegex(String emailAddress) { - regexPattern = "^(.+)@(\\S+)$"; - + public static boolean patternMatcher(String emailAddress, String regexPattern) { return Pattern.compile(regexPattern) .matcher(emailAddress) .matches(); } - - public static boolean usingStrictRegex(String emailAddress) { - regexPattern = "^(?=.{1,64}@)[A-Za-z0-9_-]+(\\.[A-Za-z0-9_-]+)*@" + "[^-][A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*(\\.[A-Za-z]{2,})$"; - - return Pattern.compile(regexPattern) - .matcher(emailAddress) - .matches(); - } - - public static boolean usingUnicodeRegex(String emailAddress) { - regexPattern = "^(?=.{1,64}@)[\\p{L}0-9_-]+(\\.[\\p{L}0-9_-]+)*@" + "[^-][\\p{L}0-9-]+(\\.[\\p{L}0-9-]+)*(\\.[\\p{L}]{2,})$"; - - return Pattern.compile(regexPattern) - .matcher(emailAddress) - .matches(); - } - - public static boolean usingRFC5322Regex(String emailAddress) { - regexPattern = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$"; - - return Pattern.compile(regexPattern) - .matcher(emailAddress) - .matches(); - } - - public static boolean restrictDots(String emailAddress) { - regexPattern = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+(?:\\.[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+)*@" + "[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$"; - - return Pattern.compile(regexPattern) - .matcher(emailAddress) - .matches(); - } - - public static boolean owaspValidation(String emailAddress) { - regexPattern = "^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$"; - - return Pattern.compile(regexPattern) - .matcher(emailAddress) - .matches(); - } - - public static boolean topLevelDomain(String emailAddress) { - regexPattern = "^[\\w!#$%&'*+/=?`{|}~^-]+(?:\\.[\\w!#$%&'*+/=?`{|}~^-]+)*" + "@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$"; - - return Pattern.compile(regexPattern) - .matcher(emailAddress) - .matches(); - } -} \ No newline at end of file +} From 298a826c74ce85b6743ea9d5e254d1f5e5131471 Mon Sep 17 00:00:00 2001 From: Ashish Gupta <30566001+gupta-ashu01@users.noreply.github.com> Date: Mon, 16 Aug 2021 11:51:31 +0530 Subject: [PATCH 5/9] Update EmailValidationUnitTest.java --- .../EmailValidationUnitTest.java | 35 +++++++++++++------ 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/core-java-modules/core-java-string-algorithms-3/src/test/java/com/baeldung/emailvalidation/EmailValidationUnitTest.java b/core-java-modules/core-java-string-algorithms-3/src/test/java/com/baeldung/emailvalidation/EmailValidationUnitTest.java index 3b2b77fc4a..b387cc9dc5 100644 --- a/core-java-modules/core-java-string-algorithms-3/src/test/java/com/baeldung/emailvalidation/EmailValidationUnitTest.java +++ b/core-java-modules/core-java-string-algorithms-3/src/test/java/com/baeldung/emailvalidation/EmailValidationUnitTest.java @@ -1,59 +1,72 @@ package com.baeldung.emailvalidation; -import static org.junit.Assert.assertEquals; +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"; - assertEquals(EmailValidator.getInstance() - .isValid(emailAddress), true); + assertTrue(EmailValidator.getInstance() + .isValid(emailAddress)); } @Test public void testUsingSimpleRegex() { emailAddress = "username@domain.com"; - assertEquals(EmailValidation.usingSimpleRegex(emailAddress), true); + regexPattern = "^(.+)@(\\S+)$"; + assertTrue(EmailValidation.patternMatcher(emailAddress, regexPattern)); } @Test public void testUsingStrictRegex() { emailAddress = "username@domain.com"; - assertEquals(EmailValidation.usingStrictRegex(emailAddress), true); + 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.patternMatcher(emailAddress, regexPattern)); } @Test public void testUsingUnicodeRegex() { emailAddress = "用户名@领域.电脑"; - assertEquals(EmailValidation.usingUnicodeRegex(emailAddress), true); + regexPattern = "^(?=.{1,64}@)[\\p{L}0-9_-]+(\\.[\\p{L}0-9_-]+)*@" + + "[^-][\\p{L}0-9-]+(\\.[\\p{L}0-9-]+)*(\\.[\\p{L}]{2,})$"; + assertTrue(EmailValidation.patternMatcher(emailAddress, regexPattern)); } @Test public void testUsingRFC5322Regex() { emailAddress = "username@domain.com"; - assertEquals(EmailValidation.usingRFC5322Regex(emailAddress), true); + regexPattern = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$"; + assertTrue(EmailValidation.patternMatcher(emailAddress, regexPattern)); } @Test public void testRestrictDots() { emailAddress = "username@domain.com"; - assertEquals(EmailValidation.restrictDots(emailAddress), true); + regexPattern = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+(?:\\.[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+)*@" + + "[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$"; + assertTrue(EmailValidation.patternMatcher(emailAddress, regexPattern)); } @Test public void testOwaspValidation() { emailAddress = "username@domain.com"; - assertEquals(EmailValidation.owaspValidation(emailAddress), true); + regexPattern = "^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$"; + assertTrue(EmailValidation.patternMatcher(emailAddress, regexPattern)); } @Test public void testTopLevelDomain() { emailAddress = "username@domain.com"; - assertEquals(EmailValidation.topLevelDomain(emailAddress), true); + regexPattern = "^[\\w!#$%&'*+/=?`{|}~^-]+(?:\\.[\\w!#$%&'*+/=?`{|}~^-]+)*" + + "@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$"; + assertTrue(EmailValidation.patternMatcher(emailAddress, regexPattern)); } -} \ No newline at end of file +} From 784ff6380d56dd3ae5de87bb4041e97458f8ebf5 Mon Sep 17 00:00:00 2001 From: Ashish Gupta <30566001+gupta-ashu01@users.noreply.github.com> Date: Mon, 16 Aug 2021 11:58:55 +0530 Subject: [PATCH 6/9] Update EmailValidationUnitTest.java --- .../com/baeldung/emailvalidation/EmailValidationUnitTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/core-java-modules/core-java-string-algorithms-3/src/test/java/com/baeldung/emailvalidation/EmailValidationUnitTest.java b/core-java-modules/core-java-string-algorithms-3/src/test/java/com/baeldung/emailvalidation/EmailValidationUnitTest.java index b387cc9dc5..c49690289a 100644 --- a/core-java-modules/core-java-string-algorithms-3/src/test/java/com/baeldung/emailvalidation/EmailValidationUnitTest.java +++ b/core-java-modules/core-java-string-algorithms-3/src/test/java/com/baeldung/emailvalidation/EmailValidationUnitTest.java @@ -1,7 +1,6 @@ package com.baeldung.emailvalidation; import static org.junit.Assert.assertTrue; - import org.apache.commons.validator.routines.EmailValidator; import org.junit.Test; From 73182cabd3524c42698ef9ae486ec6e9679dba0b Mon Sep 17 00:00:00 2001 From: Ashish Gupta <30566001+gupta-ashu01@users.noreply.github.com> Date: Sun, 12 Sep 2021 13:19:16 +0530 Subject: [PATCH 7/9] Update EmailValidation.java --- .../main/java/com/baeldung/emailvalidation/EmailValidation.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-java-modules/core-java-string-algorithms-3/src/main/java/com/baeldung/emailvalidation/EmailValidation.java b/core-java-modules/core-java-string-algorithms-3/src/main/java/com/baeldung/emailvalidation/EmailValidation.java index 4d68ea9c55..f80c87ea01 100644 --- a/core-java-modules/core-java-string-algorithms-3/src/main/java/com/baeldung/emailvalidation/EmailValidation.java +++ b/core-java-modules/core-java-string-algorithms-3/src/main/java/com/baeldung/emailvalidation/EmailValidation.java @@ -4,7 +4,7 @@ import java.util.regex.Pattern; public class EmailValidation { - public static boolean patternMatcher(String emailAddress, String regexPattern) { + public static boolean patternMatches(String emailAddress, String regexPattern) { return Pattern.compile(regexPattern) .matcher(emailAddress) .matches(); From e8ae5d9f1b3dd3723c6ebac024ac2c0e97bda6df Mon Sep 17 00:00:00 2001 From: Ashish Gupta <30566001+gupta-ashu01@users.noreply.github.com> Date: Sun, 12 Sep 2021 13:20:42 +0530 Subject: [PATCH 8/9] Update EmailValidationUnitTest.java --- .../EmailValidationUnitTest.java | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/core-java-modules/core-java-string-algorithms-3/src/test/java/com/baeldung/emailvalidation/EmailValidationUnitTest.java b/core-java-modules/core-java-string-algorithms-3/src/test/java/com/baeldung/emailvalidation/EmailValidationUnitTest.java index c49690289a..a59aded293 100644 --- a/core-java-modules/core-java-string-algorithms-3/src/test/java/com/baeldung/emailvalidation/EmailValidationUnitTest.java +++ b/core-java-modules/core-java-string-algorithms-3/src/test/java/com/baeldung/emailvalidation/EmailValidationUnitTest.java @@ -20,7 +20,7 @@ public class EmailValidationUnitTest { public void testUsingSimpleRegex() { emailAddress = "username@domain.com"; regexPattern = "^(.+)@(\\S+)$"; - assertTrue(EmailValidation.patternMatcher(emailAddress, regexPattern)); + assertTrue(EmailValidation.patternMatches(emailAddress, regexPattern)); } @Test @@ -28,7 +28,7 @@ public class EmailValidationUnitTest { 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.patternMatcher(emailAddress, regexPattern)); + assertTrue(EmailValidation.patternMatches(emailAddress, regexPattern)); } @Test @@ -36,14 +36,14 @@ public class EmailValidationUnitTest { 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.patternMatcher(emailAddress, regexPattern)); + assertTrue(EmailValidation.patternMatches(emailAddress, regexPattern)); } @Test public void testUsingRFC5322Regex() { emailAddress = "username@domain.com"; regexPattern = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$"; - assertTrue(EmailValidation.patternMatcher(emailAddress, regexPattern)); + assertTrue(EmailValidation.patternMatches(emailAddress, regexPattern)); } @Test @@ -51,14 +51,14 @@ public class EmailValidationUnitTest { emailAddress = "username@domain.com"; regexPattern = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+(?:\\.[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+)*@" + "[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$"; - assertTrue(EmailValidation.patternMatcher(emailAddress, regexPattern)); + 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.patternMatcher(emailAddress, regexPattern)); + assertTrue(EmailValidation.patternMatches(emailAddress, regexPattern)); } @Test @@ -66,6 +66,14 @@ public class EmailValidationUnitTest { emailAddress = "username@domain.com"; regexPattern = "^[\\w!#$%&'*+/=?`{|}~^-]+(?:\\.[\\w!#$%&'*+/=?`{|}~^-]+)*" + "@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$"; - assertTrue(EmailValidation.patternMatcher(emailAddress, regexPattern)); + 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,})$\r\n"; + assertTrue(EmailValidation.patternMatches(emailAddress, regexPattern)); } } From 34c2e1947f5b0da4c7044cae6e4ec50ab7be32eb Mon Sep 17 00:00:00 2001 From: Ashish Gupta <30566001+gupta-ashu01@users.noreply.github.com> Date: Sun, 12 Sep 2021 14:53:30 +0530 Subject: [PATCH 9/9] Update EmailValidationUnitTest.java --- .../com/baeldung/emailvalidation/EmailValidationUnitTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core-java-modules/core-java-string-algorithms-3/src/test/java/com/baeldung/emailvalidation/EmailValidationUnitTest.java b/core-java-modules/core-java-string-algorithms-3/src/test/java/com/baeldung/emailvalidation/EmailValidationUnitTest.java index a59aded293..e6bee0ce63 100644 --- a/core-java-modules/core-java-string-algorithms-3/src/test/java/com/baeldung/emailvalidation/EmailValidationUnitTest.java +++ b/core-java-modules/core-java-string-algorithms-3/src/test/java/com/baeldung/emailvalidation/EmailValidationUnitTest.java @@ -72,8 +72,8 @@ public class EmailValidationUnitTest { @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,})$\r\n"; + 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)); } }