creditcards
Parse, format, and validate credit card data.
Installing
$ npm install --save creditcards
API
creditcards exports:
card
cvc
expiration
You can also require modules individually:
var card = require('creditcards/card')
card
card.parse(number)
-> string
Remove all non-numeric characters from a card number, including punctuation and spacing.
number
Required
Type: string
card.format(number, [separator])
-> string
Formats a card number as printed on the physical card
number
Required
Type: string
separator
Type: string
Default: ' '
(space)
card.format('4242424242424242') === '4242 4242 4242 4242' // Visa
card.format('378282246310005') === '3782 822463 10005' // American Express
card.type(number, [eager])
-> string
Returns the matched card type, or undefined
if there was no match. For a full list of supported card types, see creditcards-types
.
number
Required
Type: string
The card number. Punctuation is not allowed. Sanitize input through card.parse
first if needed.
eager
Type: boolean
Default: false
When true
, the card type will be eagerly matched using a more permissive pattern that can match partial card numbers.
card.luhn(number)
-> Boolean
Checks the card number's validity using the Luhn algorithm.
number
Required
Type: string
card.isValid(number, [type])
-> boolean
number
Required
Type: string
type
Type: string
Default: undefined
Detect if a card is a valid card of the specified type. If no type is provided, the card will be valid if any type is matched.
cvc
cvc.isValid(cvc, [type])
-> boolean
cvc
Required
Type: string
type
Type: string
Default: undefined
Detect if a CVC is valid card for the specified type.
expiration
isPast(month, year)
-> boolean
month
Required
Type: number
year
Required
Type: number
expiration.month.parse(month)
-> number
Casts the provide value a number. All of the following will be 5
after parsing:
5
'05'
'5'
month
Required
Type: string
/ number
expiration.month.isValid(month)
-> Boolean
month
Required
Type: number
expiration.year.parse(year, [expand])
-> number
All of the following are equivalent:
expiration.year.parse(2014)
expiration.year.parse('2014')
expiration.year.parse('14', true)
expiration.year.parse(14, true)
year
Required
Type: string
/ number
expand
Type: boolean
Default: false
If true
, the year is assumed to be a 1 or 2 digit number and is expanded to its full value.
expiration.year.format(year, [strip])
-> string
year
Required
Type: number
strip
Type: boolean
Default: false
If true
, year is assumed to be a four digit number and will be converted to a two digit number.
expiration.year.format(2014) === '2014'
expiration.year.format(2014, true) === '14'
expiration.year.isValid(year)
-> Boolean
year
Required
Type: number
expiration.year.isPast(year)
-> boolean
year
Required
Type: number
License
MIT © Ben Drucker