介绍
在项目当中,经常会获取用户的手机号以及姓名,但是又不能泄露用户的信息,所以通常会进行信息的脱敏处理, 具体如下:
效果图
需求背景
关于用户电话号码,需要展示为,例如:135 **** 3345
,需要将第四个到第七个
这几个字都脱敏
关于用户姓名,需要展示为:
- 如果用户姓名为
2个字
,则脱敏最后一个字
; - 如果用户姓名为
3个字
,则脱敏中间的一个字
- 如果用户姓名为
3个字以上
的,则脱敏第二个
和第三个
字
实现代码
// 电话号码脱敏
function phoneCode(tel) {
if(!tel) return tel;
// replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
const phone = tel.replace(tel.substring(3,7),'****')
return phone
}
console.log(phoneCode('13586263345')) //135****3345
// 姓名脱敏
function namePrivate(name) {
if(null != name && name != undefined) {
if(name.length == 2) {
return name.substring(0,1) + '*' // 截取name的第一个字符,第二个字符变成*
} else if(name.length == 3) {
return name.substring(0,1) + '*' + name.substring(2,3) // 截取name的第一个和第三个字符,第二个字符变成*
} else if(name.length > 3) {
return name.substring(0,1) + '*' + '*' + name.substring(3,name.length) 截取第一个和大于第4个字符
}
} else {
return ''
}
}
console.log(namePrivate('王麻子')) //王*子