formatBankCard.js

import { toString } from 'ut2';
/**
 * 格式化银行卡号
 *
 * @static
 * @alias module:Processor.formatBankCard
 * @since 1.1.0
 * @param {string} bankCardNo 要处理的字符串
 * @param {Object} [options] 配置项
 * @param {string} [options.spaceMark=' '] 间隔字符
 * @param {number} [options.length=4] 间隔长度
 * @returns {string} 格式化的银行卡号
 * @example
 *
 * // 19位银行卡
 * formatBankCard('6228480402564890018'); // 6228 4804 0256 4890 018
 *
 * // 16位银行卡
 * formatBankCard('6228480402564890'); // 6228 4804 0256 4890
 *
 * // 脱敏银行卡
 * formatBankCard('6228********890'); // 6228 **** **** 890
 *
 * // 16位银行卡,"-"间隔
 * formatBankCard('6228480402564890', {spaceMark: '-'}); // 6228-4804-0256-4890
 *
 */
function formatBankCard(bankCardNo, options) {
    if (bankCardNo === void 0) { bankCardNo = ''; }
    if (options === void 0) { options = {}; }
    var _a = options.char, char = _a === void 0 ? ' ' : _a, _b = options.length, length = _b === void 0 ? 4 : _b;
    var realSpaceMark = 'spaceMark' in options ? options.spaceMark : char;
    var reg = new RegExp("(.{".concat(length, "})"), 'g');
    var regChar = new RegExp("".concat(realSpaceMark), 'g');
    var realValue = toString(bankCardNo).replace(regChar, '');
    var str = realValue.replace(reg, "$1".concat(realSpaceMark));
    return realValue.length % length === 0 ? str.substring(0, str.length - 1) : str;
}
export default formatBankCard;