@elevism/pay-val
TypeScript icon, indicating that this package has built-in type declarations

0.1.4 • Public • Published

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')); // true, valid routing number

console.log(validateRoutingNumber('540000000')); // false, routing numbers cannot start with 5

console.log(validateRoutingNumber('440000001')); // false, fails checksum

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')); // true, valid card number

console.log(validator.getCardTypeFromCardNumber('4242424242424242') === CardType.Visa); // true, Visa card
console.log(validator.getCardTypeFromCardNumber('4242424242424242')); // 'visa'

console.log(validator.validateExpiration('09', '2021')); // false, expiration is in the past

console.log(validator.validateExpiration('09', '26')); // true, expiration is valid and not in the past
console.log(validator.validateExpiration('09', '2026')); // true, expiration is valid and not in the past

console.log(validator.validateCombinedExpiration('0926')); // true
console.log(validator.validateCombinedExpiration('092026')); // true
console.log(validator.validateCombinedExpiration('09/26')); // true
console.log(validator.validateCombinedExpiration('09/2026')); // true
console.log(validator.validateCombinedExpiration('092026')); // true

console.log(validator.validateExpirationMonth('09')); // true
console.log(validator.validateExpirationYear('2026')); // true

console.log(validator.validateCvc(CardType.Visa, '123')); // true, Visa CVC is 3 digits
console.log(validator.validateCvc(CardType.Amex, '1234')); // true, Amex CVC is 4 digits

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 {
  /**
   * Array of CardType to allow for validation
   */
  allowedCardTypes: CardType[];
}
  • allowedCardTypes an array of CardType (enum) to allow for validation, e.g. [CardType.Visa, CardType.Amex]

Readme

Keywords

Package Sidebar

Install

npm i @elevism/pay-val

Weekly Downloads

1

Version

0.1.4

License

MIT

Unpacked Size

63.9 kB

Total Files

33

Last publish

Collaborators

  • jdforsythe