Index: chrome/browser/autofill/credit_card.cc |
diff --git a/chrome/browser/autofill/credit_card.cc b/chrome/browser/autofill/credit_card.cc |
index 6296eba28f861139d08fb3605f72cd54410bf480..20fca4e28d5393967205dbda4568ce57c1cdeeaa 100644 |
--- a/chrome/browser/autofill/credit_card.cc |
+++ b/chrome/browser/autofill/credit_card.cc |
@@ -7,6 +7,7 @@ |
#include <string> |
#include "base/basictypes.h" |
+#include "base/string_split.h" |
#include "base/string_util.h" |
#include "base/string_number_conversions.h" |
#include "base/string16.h" |
@@ -15,6 +16,8 @@ |
#include "chrome/browser/autofill/field_types.h" |
#include "chrome/common/guid.h" |
#include "grit/generated_resources.h" |
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebRegularExpression.h" |
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebString.h" |
#include "ui/base/l10n/l10n_util.h" |
namespace { |
@@ -329,6 +332,26 @@ const string16 CreditCard::Label() const { |
return label_; |
} |
+void CreditCard::SetInfoForMonthInputType(const string16& value) { |
+ // Check if |text| is "yyyy-mm" format first, and check normal month format. |
+ WebKit::WebRegularExpression re(WebKit::WebString("^[0-9]{4}\\-[0-9]{1,2}$"), |
+ WebKit::WebTextCaseInsensitive); |
+ bool match = re.match(WebKit::WebString(StringToLowerASCII(value))) != -1; |
+ if (match) { |
+ std::vector<string16> year_month; |
+ base::SplitString(value, L'-', &year_month); |
+ DCHECK_EQ((int)year_month.size(), 2); |
+ int num = 0; |
+ bool converted = false; |
+ converted = base::StringToInt(year_month[0], &num); |
+ DCHECK(converted); |
+ set_expiration_year(num); |
+ converted = base::StringToInt(year_month[1], &num); |
+ DCHECK(converted); |
+ set_expiration_month(num); |
+ } |
+} |
+ |
string16 CreditCard::ObfuscatedNumber() const { |
if (number().empty()) |
return string16(); // No CC number, means empty preview. |