16516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru// Copyright 2013 The Chromium Authors. All rights reserved. 26516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru// Use of this source code is governed by a BSD-style license that can be 36516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru// found in the LICENSE file. 46516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru 56516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru#ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_VALIDATION_H_ 66516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru#define COMPONENTS_AUTOFILL_CORE_BROWSER_VALIDATION_H_ 76516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru 86516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru#include "base/strings/string16.h" 96516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru 106516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Querunamespace base { 116516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queruclass Time; 126516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru} // namespace base; 136516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru 146516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Querunamespace autofill { 156516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru 166516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru// Returns true if |year| and |month| describe a date later than |now|. 176516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru// |year| must have 4 digits. 186516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Querubool IsValidCreditCardExpirationDate(const base::string16& year, 196516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru const base::string16& month, 206516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru const base::Time& now); 216516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Querubool IsValidCreditCardExpirationDate(int year, 226516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru int month, 236516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru const base::Time& now); 246516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru 256516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru// Returns true if |text| looks like a valid credit card number. 266516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru// Uses the Luhn formula to validate the number. 276516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Querubool IsValidCreditCardNumber(const base::string16& text); 286516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru 296516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru// Returns true if |text| looks like a valid credit card security code. 306516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Querubool IsValidCreditCardSecurityCode(const base::string16& text); 316516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru 326516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru// Returns true if |code| looks like a valid credit card security code 336516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru// for the type of credit card designated by |number|. 346516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Querubool IsValidCreditCardSecurityCode(const base::string16& code, 356516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru const base::string16& number); 366516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru 376516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru// Returns true if |text| looks like a valid e-mail address. 386516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Querubool IsValidEmailAddress(const base::string16& text); 396516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru 406516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru// Returns true if |text| is a valid US state name or abbreviation. It is 416516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru// case insensitive. Valid for US states only. 426516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Querubool IsValidState(const base::string16& text); 436516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru 446516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru// Returns true if |text| looks like a valid zip code. 456516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru// Valid for US zip codes only. 466516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Querubool IsValidZip(const base::string16& text); 476516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru 486516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru// Returns true if |text| looks like an SSN, with or without separators. 496516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Querubool IsSSN(const base::string16& text); 506516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru 516516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru} // namespace autofill 526516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru 536516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru#endif // COMPONENTS_AUTOFILL_CORE_BROWSER_VALIDATION_H_ 546516b99bb74dfb7187a08f7090bf7ca22a006f15Jean-Baptiste Queru