UNPKG

@ivujs/i-utils

Version:

前端模块化 JavaScript 工具库

79 lines (76 loc) 2.36 kB
'use strict'; /** * @module 脱敏 */ /** * 指定位置的字符串转为星号 * @param {string|number} value 字符串参数 * @param {number} start 转换开始位置 * @param {number} len 显示星号的长度 * @returns {string} 返回转化后字符串 */ function formatStartOf(value, start, len) { value = String(value); if (start > value.length) return value; // len小于0和len大于剩余长度 let startStr = ""; if (len < 0) len = 0; if (len > value.length - start) { len = value.length - start; } startStr = String().padEnd(len, "*"); return value.substring(0, start) + startStr + value.substring(start + len); } /** * 姓名中间转为星号 * @param {string} value 姓名 * @returns {string} 返回转化后字符串 */ function formatStartOfName(value) { if (value.length === 2) { return formatStartOf(value, 1, 1); } else if (value.length > 2) { return formatStartOf(value, 1, value.length - 2); } else { return value; } } /** * 手机号码固定位数转为星号 * @param {string} value 手机号码 * @param {number} start 前缀长度,默认3位 * @param {number} len 显示星号的长度,默认4位 * @returns {string} 返回转化后字符串 */ function formatStartOfMobile(value, start = 3, len = 4) { return formatStartOf(value, start, len); } /** * 身份证号码固定位数转为星号 * @param {string} value 身份证号码 * @param {number} start 前缀长度,默认4位 * @param {number} len 显示星号的长度,默认8位 * @returns {string} 返回转化后字符串 */ function formatStartOfIDCard(value, start = 4, len = 8) { return formatStartOf(value, start, len); } /** * 银行卡号固定位数转为星号 * @param {string} value 银行卡号 * @param {number} start 前缀长度,默认4位 * @param {number} len 显示星号的长度,默认10位 * @returns {string} 返回转化后字符串 */ function formatStartOfBankCard(value, start = 4, len = 11) { return formatStartOf(value, start, len); } exports.formatStartOf = formatStartOf; exports.formatStartOfBankCard = formatStartOfBankCard; exports.formatStartOfIDCard = formatStartOfIDCard; exports.formatStartOfMobile = formatStartOfMobile; exports.formatStartOfName = formatStartOfName;