UNPKG

fenzhi-utils

Version:

分值前端项目的js函数库

47 lines (43 loc) 1.48 kB
import { CustomGetTypeOf } from '../CustomPublic/CustomGetTypeOf.js'; /** * 姓名脱敏 * 规则:整体保持前一后一,其它隐藏 * @param {string} nameStr 传入的姓名 * @param {string} character 要替换的字符,默认是* * @returns {string} 返回替换后的姓名 */ /** let obj = { a: null, b: undefined }; CustomPersonNameFn(null,'*');// '' CustomPersonNameFn(undefined,'*');// '' CustomPersonNameFn(obj.a,'*');// '' CustomPersonNameFn(obj.b,'*');// '' CustomPersonNameFn('','*');// '' CustomPersonNameFn('王','*');// '王' CustomPersonNameFn('王三','*');// '王*' CustomPersonNameFn('王老七','*');// '王*七' CustomPersonNameFn('诸葛孔明','*');// '诸**明' CustomPersonNameFn('诸葛孔明','-');// '诸--明' CustomPersonNameFn('艾森豪威尔','*');// '艾***尔' */ export function CustomPersonNameFn(nameStr = '', character = '*') { try { if (CustomGetTypeOf(nameStr) !== 'string') { throw new Error('传入的姓名为非字符串'); } if ([0, 1].includes(nameStr.length)) { return nameStr; } else if ([2].includes(nameStr.length)) { return nameStr.charAt(0) + character; } else { // 保留前一后一 return nameStr.split('').reduce((prev, item, index) => { return (prev += [0, nameStr.length - 1].includes(index) ? item : character); }, ''); } } catch (err) { console.log(err); } }