/*
对手机号 13520299283 进行任意位数的掩码!
例如:
对前三位掩码:***20299283
对后四位掩码:1352029****
对中间四位掩码:135****9283
当然,对于手机号中间四位掩码比较常见!!!
* */
type positionType = 'prev' | 'mid' | 'last'
/**
* @param str 原字符串
* @param type 前中后
* @param position type是prev,last时代表位数 type是mid时代表开始位
* @param endPosition 结束位
* */
function makeCode(str: string, type: positionType, position: number, endPosition?: number): string {
const len = str.length
switch (type) {
// 前
case 'prev':
return maskCodeFn(str, 0, position)
// 中
case 'mid':
return maskCodeFn(str, position, endPosition || position)
// 后
case 'last':
return maskCodeFn(str, len - position, str.length)
}
}
/**
* @param str 原字符串
* @param start 开始位
* @param end 结束位
* */
function maskCodeFn (str: string, start: number, end: number): string {
const arr = str.split('')
for (let i = start; i < end; i += 1) {
arr[i] = '*'
}
return arr.join('')
}
console.log(makeCode('13520299283', 'prev', 3))
console.log(makeCode('13520299283', 'mid', 3, 7))
console.log(makeCode('13520299283', 'last', 4))
JavaScript 对手机号掩码
最新推荐文章于 2024-08-30 20:51:51 发布