UNPKG

util-helpers

Version:

一个基于业务场景的工具方法库

30 lines (27 loc) 1.09 kB
import { toString } from 'ut2'; var reg = /^[1-9]\d{9,20}$/; var regLoose = /^\d{8,30}$/; function sumCheckCode(numStr) { var numArr = (numStr + '').replace(/\D/g, '').split('').reverse(); var sum = 0; for (var i = 0; i < numArr.length; i++) { var currNum = parseInt(numArr[i]); sum += i % 2 === 0 ? currNum * 2 - (currNum > 4 ? 9 : 0) : currNum; } var mod = sum % 10; return mod !== 0 ? 10 - mod : 0; } function isBankCard(value, options) { if (options === void 0) { options = {}; } var _a = options.loose, loose = _a === void 0 ? false : _a, _b = options.luhn, luhn = _b === void 0 ? false : _b; var valueStr = toString(value); var validateResult = loose ? regLoose.test(valueStr) : reg.test(valueStr); if (validateResult && luhn) { var precode = valueStr.substring(0, valueStr.length - 1); var checkCode = valueStr[valueStr.length - 1]; return checkCode === String(sumCheckCode(precode)); } return validateResult; } isBankCard.sumCheckCode = sumCheckCode; export { isBankCard as default };