public class CreditCardValidator extends Object implements Serializable
By default, AMEX + VISA + MASTERCARD + DISCOVER card types are allowed. You can specify which cards should pass validation by configuring the validation options. For example,
CreditCardValidator ccv = new CreditCardValidator(CreditCardValidator.AMEX + CreditCardValidator.VISA);
configures the validator to only pass American Express and Visa cards.
If a card type is not directly supported by this class, you can create an
instance of the CodeValidator
class and pass it to a CreditCardValidator
constructor along with any existing validators. For example:
CreditCardValidator ccv = new CreditCardValidator(
new CodeValidator[] {
CreditCardValidator.AMEX_VALIDATOR,
CreditCardValidator.VISA_VALIDATOR,
new CodeValidator("^(4)(\\d{12,18})$", LUHN_VALIDATOR) // add VPAY
};
Alternatively you can define a validator using the CreditCardValidator.CreditCardRange
class.
For example:
CreditCardValidator ccv = new CreditCardValidator(
new CreditCardRange[]{
new CreditCardRange("300", "305", 14, 14), // Diners
new CreditCardRange("3095", null, 14, 14), // Diners
new CreditCardRange("36", null, 14, 14), // Diners
new CreditCardRange("38", "39", 14, 14), // Diners
new CreditCardRange("4", null, new int[] {13, 16}), // VISA
}
);
This can be combined with a list of CodeValidator
s
More information can be found in Michael Gilleland's essay Anatomy of Credit Card Numbers.
Modifier and Type | Class and Description |
---|---|
static class |
CreditCardValidator.CreditCardRange
Class that represents a credit card range.
|
Modifier and Type | Field and Description |
---|---|
static long |
AMEX
Option specifying that American Express cards are allowed.
|
static CodeValidator |
AMEX_VALIDATOR
American Express (Amex) Card Validator
|
static long |
DINERS
Option specifying that Diners cards are allowed.
|
static CodeValidator |
DINERS_VALIDATOR
Diners Card Validator
|
static long |
DISCOVER
Option specifying that Discover cards are allowed.
|
static CodeValidator |
DISCOVER_VALIDATOR
Discover Card Validator
|
static long |
MASTERCARD
Option specifying that Mastercard cards are allowed.
|
static long |
MASTERCARD_PRE_OCT2016
Deprecated.
for use until Oct 2016 only
|
static CodeValidator |
MASTERCARD_VALIDATOR
Mastercard Card Validator
|
static CodeValidator |
MASTERCARD_VALIDATOR_PRE_OCT2016
Deprecated.
for use until Oct 2016 only
|
static long |
NONE
Option specifying that no cards are allowed.
|
static long |
VISA
Option specifying that Visa cards are allowed.
|
static CodeValidator |
VISA_VALIDATOR
Visa Card Validator
|
static long |
VPAY
Option specifying that VPay (Visa) cards are allowed.
|
static CodeValidator |
VPAY_VALIDATOR
VPay (Visa) Card Validator
|
Constructor and Description |
---|
CreditCardValidator()
Create a new CreditCardValidator with default options.
|
CreditCardValidator(CodeValidator[] creditCardValidators)
Create a new CreditCardValidator with the specified
CodeValidator s. |
CreditCardValidator(CodeValidator[] creditCardValidators,
CreditCardValidator.CreditCardRange[] creditCardRanges)
Create a new CreditCardValidator with the specified
CodeValidator s
and CreditCardValidator.CreditCardRange s. |
CreditCardValidator(CreditCardValidator.CreditCardRange[] creditCardRanges)
Create a new CreditCardValidator with the specified
CreditCardValidator.CreditCardRange s. |
CreditCardValidator(long options)
Create a new CreditCardValidator with the specified options.
|
Modifier and Type | Method and Description |
---|---|
static CreditCardValidator |
genericCreditCardValidator()
Create a new generic CreditCardValidator which validates the syntax and check digit only.
|
static CreditCardValidator |
genericCreditCardValidator(int length)
Create a new generic CreditCardValidator which validates the syntax and check digit only.
|
static CreditCardValidator |
genericCreditCardValidator(int minLen,
int maxLen)
Create a new generic CreditCardValidator which validates the syntax and check digit only.
|
boolean |
isValid(String card)
Checks if the field is a valid credit card number.
|
Object |
validate(String card)
Checks if the field is a valid credit card number.
|
public static final long NONE
CreditCardValidator v = new CreditCardValidator(CreditCardValidator.NONE);
v.addAllowedCardType(customType);
v.isValid(aCardNumber);
public static final long AMEX
public static final long VISA
public static final long MASTERCARD
public static final long DISCOVER
public static final long DINERS
public static final long VPAY
@Deprecated public static final long MASTERCARD_PRE_OCT2016
public static final CodeValidator AMEX_VALIDATOR
34xxxx (15)
37xxxx (15)
public static final CodeValidator DINERS_VALIDATOR
300xxx - 305xxx (14)
3095xx (14)
36xxxx (14)
38xxxx (14)
39xxxx (14)
public static final CodeValidator DISCOVER_VALIDATOR
public static final CodeValidator MASTERCARD_VALIDATOR
@Deprecated public static final CodeValidator MASTERCARD_VALIDATOR_PRE_OCT2016
public static final CodeValidator VISA_VALIDATOR
4xxxxx (13 or 16)
public static final CodeValidator VPAY_VALIDATOR
4xxxxx (13-19)
public CreditCardValidator()
public CreditCardValidator(long options)
options
- Pass in
CreditCardValidator.VISA + CreditCardValidator.AMEX to specify that
those are the only valid card types.public CreditCardValidator(CodeValidator[] creditCardValidators)
CodeValidator
s.creditCardValidators
- Set of valid code validatorspublic CreditCardValidator(CreditCardValidator.CreditCardRange[] creditCardRanges)
CreditCardValidator.CreditCardRange
s.creditCardRanges
- Set of valid code validatorspublic CreditCardValidator(CodeValidator[] creditCardValidators, CreditCardValidator.CreditCardRange[] creditCardRanges)
CodeValidator
s
and CreditCardValidator.CreditCardRange
s.
This can be used to combine predefined validators such as MASTERCARD_VALIDATOR
with additional validators using the simpler CreditCardValidator.CreditCardRange
s.
creditCardValidators
- Set of valid code validatorscreditCardRanges
- Set of valid code validatorspublic static CreditCardValidator genericCreditCardValidator(int minLen, int maxLen)
minLen
- minimum allowed lengthmaxLen
- maximum allowed lengthpublic static CreditCardValidator genericCreditCardValidator(int length)
length
- exact lengthpublic static CreditCardValidator genericCreditCardValidator()
public boolean isValid(String card)
card
- The card number to validate.Copyright © 2002–2020 The Apache Software Foundation. All rights reserved.