Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/afzalimdad9/card-validator

Card validation helpers for payment forms.
https://github.com/afzalimdad9/card-validator

amex card card-validator credit-card mastercard payments rupay visa

Last synced: about 2 months ago
JSON representation

Card validation helpers for payment forms.

Awesome Lists containing this project

README

        

# Card Validator

Generic helpers for card number, expiry and CVV validations

[![npm version](https://badge.fury.io/js/%40afzalimdad9%2Fsimple-card-validator.svg)](https://badge.fury.io/js/%40afzalimdad9%2Fsimple-card-validator)

## Usage:
Import the library and initialize card object.

Install from npm:

`npm i @afzalimdad9/simple-card-validator --save`

`var cardValidator = require('simple-card-validator');`

Or, you can simply use the file from `dist/validator.js` if you are not using node/npm.

`var card = new cardValidator('4242-4242-4242-4242');`

### Getting card details
`card.getCardDetails();`
This would output, card brand and different validation outputs like below:
```
{
card_type: 'visa',
valid: true,
luhn_valid: true,
length_valid: true,
cvv_length: [3],
gaps: [4, 8, 12],
supported_lengths: [16],
max_length: 16
}
```

#### Output format

| Field | Description | Type |
| ----------------- | ------------------------------------- | ----------------- |
| card_type | The card issuer for the provided card | String |
| valid | Are the card details valid | Boolean |
| luhn_valid | Is the card number valid | Boolean |
| length_valid | If the card number length is valid | Boolean |
| cvv_length | If the CVV/CAVV length is valid | Array [ Integer ] |
| gaps | Gaps for UI as printed in cards | Array [ Integer ] |
| supported_lengths | Supported lengths for the card type | Array [ Integer ] |
| max_length | Maximum length for the card type | Integer |

### Validations
To simply validate a card, call:
`card.validateCard();`
The result will be a validity boolean.

For validating expiry date,
`card.validateExpiry('12/2018');`

Additionally, the base date can be set for expiry validations. The base month and date can be provided by using,
`card.setBaseDate(month, year);`

eg: `card.setBaseDate('02', '2016');`

For validating CVV, use:
`card.validateCvv(111);`
CVV will be validated based on the brand of the card.

## License

MIT license. Copyright © 2024 - [afzalimdad9](https://afzalimdad9.vercel.app).