1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_VALIDATION_H_ 6 #define COMPONENTS_AUTOFILL_CORE_BROWSER_VALIDATION_H_ 7 8 #include "base/strings/string16.h" 9 10 namespace base { 11 class Time; 12 } // namespace base; 13 14 namespace autofill { 15 16 // Returns true if |year| and |month| describe a date later than |now|. 17 // |year| must have 4 digits. 18 bool IsValidCreditCardExpirationDate(const base::string16& year, 19 const base::string16& month, 20 const base::Time& now); 21 bool IsValidCreditCardExpirationDate(int year, 22 int month, 23 const base::Time& now); 24 25 // Returns true if |text| looks like a valid credit card number. 26 // Uses the Luhn formula to validate the number. 27 bool IsValidCreditCardNumber(const base::string16& text); 28 29 // Returns true if |text| looks like a valid credit card security code. 30 bool IsValidCreditCardSecurityCode(const base::string16& text); 31 32 // Returns true if |code| looks like a valid credit card security code 33 // for the type of credit card designated by |number|. 34 bool IsValidCreditCardSecurityCode(const base::string16& code, 35 const base::string16& number); 36 37 // Returns true if |text| looks like a valid e-mail address. 38 bool IsValidEmailAddress(const base::string16& text); 39 40 // Returns true if |text| is a valid US state name or abbreviation. It is 41 // case insensitive. Valid for US states only. 42 bool IsValidState(const base::string16& text); 43 44 // Returns true if |text| looks like a valid zip code. 45 // Valid for US zip codes only. 46 bool IsValidZip(const base::string16& text); 47 48 // Returns true if |text| looks like an SSN, with or without separators. 49 bool IsSSN(const base::string16& text); 50 51 } // namespace autofill 52 53 #endif // COMPONENTS_AUTOFILL_CORE_BROWSER_VALIDATION_H_ 54