Payment Info Validation
Payment info validation utility
Inspiration
- Payment
- I wanted to separate the validate from the DOM interaction, so it could easily be used with different front end frameworks
- AngularJS ABA Routing Validation
- This is a directive I made for AngularJS to validate ABA routing numbers
Install
$ npm install -S @elevism/pay-val
Validate Routing Number
The routing number validation is simple and non-configurable, so it's just a function.
import { validateRoutingNumber } from '@elevism/pay-val';
console.log(validateRoutingNumber('440000000'));
console.log(validateRoutingNumber('540000000'));
console.log(validateRoutingNumber('440000001'));
Validate Credit Card
Credit card validation is configurable, so you need to create an instance of the class.
Simple Examples
import { CreditCardValidator, CardType } from '@elevism/pay-val';
const validator = new CreditCardValidator({
allowedCardTypes: [CardType.Amex, CardType.Discover, CardType.MasterCard, CardType.Visa],
});
console.log(validator.validateCardNumber('4242424242424242'));
console.log(validator.getCardTypeFromCardNumber('4242424242424242') === CardType.Visa);
console.log(validator.getCardTypeFromCardNumber('4242424242424242'));
console.log(validator.validateExpiration('09', '2021'));
console.log(validator.validateExpiration('09', '26'));
console.log(validator.validateExpiration('09', '2026'));
console.log(validator.validateCombinedExpiration('0926'));
console.log(validator.validateCombinedExpiration('092026'));
console.log(validator.validateCombinedExpiration('09/26'));
console.log(validator.validateCombinedExpiration('09/2026'));
console.log(validator.validateCombinedExpiration('092026'));
console.log(validator.validateExpirationMonth('09'));
console.log(validator.validateExpirationYear('2026'));
console.log(validator.validateCvc(CardType.Visa, '123'));
console.log(validator.validateCvc(CardType.Amex, '1234'));
Configuration
Library supports several cards, including:
- American Express
- Dankort
- Diners Club
- Discover
- Elo
- Hipercard
- JCB
- Laser
- Maestro
- MasterCard
- Mir
- Troy
- Union Pay
- Visa Electron
- Visa
Options:
interface CreditCardValidatorOptions {
allowedCardTypes: CardType[];
}
allowedCardTypes
an array of CardType
(enum) to allow for validation, e.g. [CardType.Visa, CardType.Amex]