Index: components/autofill/core/browser/credit_card_field.cc |
diff --git a/components/autofill/core/browser/credit_card_field.cc b/components/autofill/core/browser/credit_card_field.cc |
index 468e1f60e136b6c9a054c7b8599611610f89283b..ea382f76124863ccfbbfaa4130c161238986e348 100644 |
--- a/components/autofill/core/browser/credit_card_field.cc |
+++ b/components/autofill/core/browser/credit_card_field.cc |
@@ -425,28 +425,21 @@ bool CreditCardField::ParseExpirationDate(AutofillScanner* scanner) { |
// If that fails, do a general regex search. |
scanner->RewindTo(month_year_saved_cursor); |
- const int kMatchTelAndSelect = MATCH_DEFAULT | MATCH_TELEPHONE | MATCH_SELECT; |
- if (ParseFieldSpecifics(scanner, |
- base::UTF8ToUTF16(kExpirationMonthRe), |
- kMatchTelAndSelect, |
- &expiration_month_) && |
- ParseFieldSpecifics(scanner, |
- base::UTF8ToUTF16(kExpirationYearRe), |
- kMatchTelAndSelect, |
- &expiration_year_)) { |
+ const int kMatchNumAndTelAndSelect = |
+ MATCH_DEFAULT | MATCH_NUMBER | MATCH_TELEPHONE | MATCH_SELECT; |
+ if (ParseFieldSpecifics(scanner, base::UTF8ToUTF16(kExpirationMonthRe), |
+ kMatchNumAndTelAndSelect, &expiration_month_) && |
+ ParseFieldSpecifics(scanner, base::UTF8ToUTF16(kExpirationYearRe), |
+ kMatchNumAndTelAndSelect, &expiration_year_)) { |
return true; |
} |
// If that fails, look for just MM and/or YY(YY). |
scanner->RewindTo(month_year_saved_cursor); |
- if (ParseFieldSpecifics(scanner, |
- base::ASCIIToUTF16("^mm$"), |
- kMatchTelAndSelect, |
- &expiration_month_) && |
- ParseFieldSpecifics(scanner, |
- base::ASCIIToUTF16("^(yy|yyyy)$"), |
- kMatchTelAndSelect, |
- &expiration_year_)) { |
+ if (ParseFieldSpecifics(scanner, base::ASCIIToUTF16("^mm$"), |
+ kMatchNumAndTelAndSelect, &expiration_month_) && |
+ ParseFieldSpecifics(scanner, base::ASCIIToUTF16("^(yy|yyyy)$"), |
+ kMatchNumAndTelAndSelect, &expiration_year_)) { |
return true; |
} |
@@ -457,25 +450,21 @@ bool CreditCardField::ParseExpirationDate(AutofillScanner* scanner) { |
// Bail out if the field cannot fit a 2-digit year expiration date. |
const int current_field_max_length = scanner->Cursor()->max_length; |
if (!FieldCanFitDataForFieldType(current_field_max_length, |
- CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR)) { |
+ CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR)) |
return false; |
- } |
// Try to look for a 2-digit year expiration date. |
if (ParseFieldSpecifics(scanner, |
base::UTF8ToUTF16(kExpirationDate2DigitYearRe), |
- kMatchTelAndSelect, |
- &expiration_date_)) { |
+ kMatchNumAndTelAndSelect, &expiration_date_)) { |
exp_year_type_ = CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR; |
expiration_month_ = nullptr; |
return true; |
} |
// Try to look for a generic expiration date field. (2 or 4 digit year) |
- if (ParseFieldSpecifics(scanner, |
- base::UTF8ToUTF16(kExpirationDateRe), |
- kMatchTelAndSelect, |
- &expiration_date_)) { |
+ if (ParseFieldSpecifics(scanner, base::UTF8ToUTF16(kExpirationDateRe), |
+ kMatchNumAndTelAndSelect, &expiration_date_)) { |
// If such a field exists, but it cannot fit a 4-digit year expiration |
// date, then the likely possibility is that it is a 2-digit year expiration |
// date. |
@@ -492,8 +481,7 @@ bool CreditCardField::ParseExpirationDate(AutofillScanner* scanner) { |
CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR) && |
ParseFieldSpecifics(scanner, |
base::UTF8ToUTF16(kExpirationDate4DigitYearRe), |
- kMatchTelAndSelect, |
- &expiration_date_)) { |
+ kMatchNumAndTelAndSelect, &expiration_date_)) { |
expiration_month_ = nullptr; |
return true; |
} |