This is an automated email from the ASF dual-hosted git repository.

sebb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-validator.git


The following commit(s) were added to refs/heads/master by this push:
     new c9202ac  VALIDATOR-403 DISCOVER 6011 17 digits
c9202ac is described below

commit c9202acfb7a47cc656a7d53f9277f222669d6356
Author: Sebb <s...@apache.org>
AuthorDate: Tue Jul 28 12:51:52 2020 +0100

    VALIDATOR-403 DISCOVER 6011 17 digits
---
 src/changes/changes.xml                                                | 3 +++
 .../org/apache/commons/validator/routines/CreditCardValidator.java     | 2 +-
 .../org/apache/commons/validator/routines/CreditCardValidatorTest.java | 2 +-
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 9a4176b..4b413bb 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -99,6 +99,9 @@ Apache Commons Validator.
 For the current list of dependencies, please see
 http://commons.apache.org/validator/dependencies.html
   ">
+    <action issue="VALIDATOR-403" type="fix" dev="sebb" due-to="Tanya">
+    Accept Discover cards of 17 digits long that start with 6011
+    </action>
     <action issue="VALIDATOR-408" type="fix" dev="sebb" due-to="Raj Vaida">
     DISCOVER Card Validation Patterns
     </action>
diff --git 
a/src/main/java/org/apache/commons/validator/routines/CreditCardValidator.java 
b/src/main/java/org/apache/commons/validator/routines/CreditCardValidator.java
index 801645d..94e8fe0 100644
--- 
a/src/main/java/org/apache/commons/validator/routines/CreditCardValidator.java
+++ 
b/src/main/java/org/apache/commons/validator/routines/CreditCardValidator.java
@@ -236,7 +236,7 @@ public class CreditCardValidator implements Serializable {
      * 6011xx (16) <br>
      * 644xxx - 65xxxx (16) <br>
      */
-    private static final RegexValidator DISCOVER_REGEX = new 
RegexValidator(new String[] {"^(6011\\d{12})$", "^(64[4-9]\\d{13})$", 
"^(65\\d{14})$", "^(62[2-8]\\d{13})$"});
+    private static final RegexValidator DISCOVER_REGEX = new 
RegexValidator(new String[] {"^(6011\\d{12,13})$", "^(64[4-9]\\d{13})$", 
"^(65\\d{14})$", "^(62[2-8]\\d{13})$"});
 
     /** Discover Card Validator */
     public static final CodeValidator DISCOVER_VALIDATOR = new 
CodeValidator(DISCOVER_REGEX, LUHN_VALIDATOR);
diff --git 
a/src/test/java/org/apache/commons/validator/routines/CreditCardValidatorTest.java
 
b/src/test/java/org/apache/commons/validator/routines/CreditCardValidatorTest.java
index 7605389..a55d20a 100644
--- 
a/src/test/java/org/apache/commons/validator/routines/CreditCardValidatorTest.java
+++ 
b/src/test/java/org/apache/commons/validator/routines/CreditCardValidatorTest.java
@@ -55,6 +55,7 @@ public class CreditCardValidatorTest extends TestCase {
         VALID_DINERS,
         VALID_VPAY,
         VALID_VPAY2,
+        "60115564485789458", // VALIDATOR-403
     };
 
     private static final String [] ERROR_CARDS = {
@@ -311,7 +312,6 @@ public class CreditCardValidatorTest extends TestCase {
         assertTrue("Length 16-644",   regex.isValid("6444567890123456"));
         assertTrue("Length 16-648",   regex.isValid("6484567890123456"));
         assertTrue("Length 16-65",    regex.isValid("6534567890123456"));
-        assertFalse("Length 17-6011", regex.isValid("60115678901234567"));
         assertFalse("Length 17-65",   regex.isValid("65345678901234567"));
         assertFalse("Length 18-6011", regex.isValid("601156789012345678"));
         assertFalse("Length 18-65",   regex.isValid("653456789012345678"));

Reply via email to