Serializable
public class CreditCardValidator extends Object implements Serializable
By default, all supported 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 | Description |
---|---|---|
static class |
CreditCardValidator.CreditCardRange |
Class that represents a credit card range.
|
Modifier and Type | Field | 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 | Description |
---|---|
CreditCardValidator() |
Create a new CreditCardValidator with default options.
|
CreditCardValidator(long options) |
Create a new CreditCardValidator with the specified 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. |
Modifier and Type | Method | 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–2018. All rights reserved.