UNPKG

@w.dental/credit-card-name

Version:

Lib for get credit card flag by initials numbers

73 lines (67 loc) 2.89 kB
/*! * @w.dental/credit-card-name v0.0.2 * (c) W-Dental * Released under the MIT License. */ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, global['{{LIB_NAME}}'] = factory()); }(this, (function () { 'use strict'; var CREDIT_CARD_CONFIG = [{ name: 'elo', regexpBin: /^401178|^401179|^431274|^438935|^451416|^457393|^457631|^457632|^504175|^627780|^636297|^636368|^(506699|5067[0-6]\d|50677[0-8])|^(50900\d|5090[1-9]\d|509[1-9]\d{2})|^65003[1-3]|^(65003[5-9]|65004\d|65005[0-1])|^(65040[5-9]|6504[1-3]\d)|^(65048[5-9]|65049\d|6505[0-2]\d|65053[0-8])|^(65054[1-9]|6505[5-8]\d|65059[0-8])|^(65070\d|65071[0-8])|^65072[0-7]|^(65090[1-9]|65091\d|650920)|^(65165[2-9]|6516[6-7]\d)|^(65500\d|65501\d)|^(65502[1-9]|6550[3-4]\d|65505[0-8])/, regexpFull: /^(401178|401179|431274|438935|451416|457393|457631|457632|504175|627780|636297|636368|(506699|5067[0-6]\d|50677[0-8])|(50900\d|5090[1-9]\d|509[1-9]\d{2})|65003[1-3]|(65003[5-9]|65004\d|65005[0-1])|(65040[5-9]|6504[1-3]\d)|(65048[5-9]|65049\d|6505[0-2]\d|65053[0-8])|(65054[1-9]|6505[5-8]\d|65059[0-8])|(65070\d|65071[0-8])|65072[0-7]|(65090[1-9]|65091\d|650920)|(65165[2-9]|6516[6-7]\d)|(65500\d|65501\d)|(65502[1-9]|6550[3-4]\d|65505[0-8]))[0-9]{10,12}/, regexpCvv: /^\d{3}$/ }, { name: 'hipercard', regexpBin: /^3841[046]0|^60/, regexpFull: /^(38[0-9]{17}|60[0-9]{14})$/, regexpCvv: /^\d{3}$/ }, { name: 'dinners', regexpBin: /^3(?:0[0-5]|[68][0-9])/, regexpFull: /^3(?:0[0-5]|[68][0-9])[0-9]{11}$/, regexpCvv: /^\d{3}$/ }, { name: 'discover', regexpBin: /^6(?:011|5[0-9]{2})/, regexpFull: /^6(?:011|5[0-9]{2})[0-9]{12}$/, regexpCvv: /^\d{3}$/ }, { name: 'amex', regexpBin: /^3[47]/, regexpFull: /^3[47][0-9]{13}$/, regexpCvv: /^\d{3,4}$/ }, { name: 'aura', regexpBin: /^50[0-9]/, regexpFull: /^50[0-9]{14,17}$/, regexpCvv: /^\d{3}$/ }, { name: 'mastercard', regexpBin: /^5[1-5][0-9][0-9]/, regexpFull: /^5[1-5][0-9]{14}$/, regexpCvv: /^\d{3}$/ }, { name: 'visa', regexpBin: /^4/, regexpFull: /^4[0-9]{12}(?:[0-9]{3})?$/, regexpCvv: /^\d{3}$/ }]; function getCreditCardOperatorByInitalsNumber(creditNumber) { if (creditNumber === void 0) { creditNumber = ''; } try { var normalizedCreditNumber_1 = creditNumber.replace(/\s/g, ''); var result = CREDIT_CARD_CONFIG.find(function (creditcard) { return creditcard.regexpBin.test(normalizedCreditNumber_1); }); return result.name; } catch (e) { throw new Error(creditNumber + " is an invalid value or type, please see documentations for more infos!"); } } return getCreditCardOperatorByInitalsNumber; })));