手机号脱敏
- 保留前三位和后四位,其余用
*
替换 - 小于 11 位的原样返回
/**
* 脱敏手机号码
*
* @param content 待脱敏的手机号内容
* @param fillChar 脱敏填充字符,默认为 "*"
* @returns 脱敏后的手机号字符串
*/
function des_phone(content, fillChar = "*") {
if (!content) {
return "";
}
// 非字符串转换为字符串
content = content.toString();
if (content.length < 11) {
return content;
}
let index = 1;
let result = "";
for (let char of content) {
if (index < 4 || index > content.length - 4) {
result += char;
} else {
result += fillChar;
}
index++;
}
return result;
}
测试
let test1 = des_phone(1391234567);
console.log(test1); // 1391234567
let test2 = des_phone("13912345678");
console.log(test2); // 139****5678
let test3 = des_phone("139123456789");
console.log(test3); // 139*****6789
姓名脱敏
- 两字姓名,保留姓,其余用
*
替换 - 三字及以上姓名,保留首尾,其余用
*
替换
/**
* 脱敏处理字符串中的名字
*
* @param content 待脱敏的字符串
* @param fillChar 用于脱敏的填充字符,默认为 "*"
* @returns 脱敏后的字符串
*/
function des_name(content, fillChar = "*") {
if (!content) {
return "";
}
let index = 1;
let result = "";
for (let char of content) {
if (index === 1 || (index === content.length && index !== 2)) {
result += char;
} else {
result += fillChar;
}
index++;
}
return result;
}
测试
let test1 = des_name("朝阳");
console.log(test1); // 朝*
let test2 = des_name("李嘉欣");
console.log(test2); // 李*欣
let test3 = des_name("诸葛神侯");
console.log(test3); // 诸**侯
证件号码脱敏
- 保留前四位和后四位,其余用
*
替换 - 小于 9 位的原样返回
/**
* 对证件号码进行脱敏处理
*
* @param content 待脱敏的内容
* @param fillChar 脱敏时用于填充的字符,默认为 "*"
* @returns 脱敏后的字符串
*/
function des_ID(content, fillChar = "*") {
if (!content) {
return "";
}
// 非字符串转换为字符串
content = content.toString();
if (content.length < 9) {
return content;
}
let index = 1;
let result = "";
for (let char of content) {
if (index < 5 || index > content.length - 4) {
result += char;
} else {
result += fillChar;
}
index++;
}
return result;
}
测试
let test1 = des_ID(12345678);
console.log(test1); // 12345678
let test2 = des_ID("420118196904055624");
console.log(test2); // 4201**********5624