Index: components/autofill/core/browser/validation.cc |
diff --git a/components/autofill/core/browser/validation.cc b/components/autofill/core/browser/validation.cc |
index 4588a13bbd92d659801ac7afd5431294114aff91..60726b8e6103dd7d43275c5c990de234b4b40be5 100644 |
--- a/components/autofill/core/browser/validation.cc |
+++ b/components/autofill/core/browser/validation.cc |
@@ -46,11 +46,11 @@ bool IsValidCreditCardExpirationDate(int year, |
bool IsValidCreditCardNumber(const base::string16& text) { |
base::string16 number = CreditCard::StripSeparators(text); |
- // Credit card numbers are at most 19 digits in length [1]. 12 digits seems to |
- // be a fairly safe lower-bound [2]. Specific card issuers have more rigidly |
- // defined sizes. |
- // [1] http://www.merriampark.com/anatomycc.htm |
- // [2] http://en.wikipedia.org/wiki/Bank_card_number |
+ // Credit card numbers are at most 19 digits in length, 12 digits seems to |
+ // be a fairly safe lower-bound [1]. Specific card issuers have more rigidly |
+ // defined sizes. |
+ // (Last updated: May 29, 2017) |
+ // [1] https://en.wikipedia.org/wiki/Payment_card_number. |
// CardEditor.isCardNumberLengthMaxium() needs to be kept in sync. |
const char* const type = CreditCard::GetCardNetwork(text); |
if (type == kAmericanExpressCard && number.size() != 15) |
@@ -59,6 +59,8 @@ bool IsValidCreditCardNumber(const base::string16& text) { |
return false; |
if (type == kDiscoverCard && number.size() != 16) |
return false; |
+ if (type == kEloCard && number.size() != 16) |
+ return false; |
if (type == kJCBCard && number.size() != 16) |
return false; |
if (type == kMasterCard && number.size() != 16) |
@@ -67,7 +69,8 @@ bool IsValidCreditCardNumber(const base::string16& text) { |
return false; |
if (type == kUnionPay && (number.size() < 16 || number.size() > 19)) |
return false; |
- if (type == kVisaCard && number.size() != 13 && number.size() != 16) |
+ if (type == kVisaCard && number.size() != 13 && number.size() != 16 && |
+ number.size() != 19) |
return false; |
if (type == kGenericCard && (number.size() < 12 || number.size() > 19)) |
return false; |