JavaScript 数据处理 - 常见数据脱敏
JavaScript 数据处理 - 常见数据脱敏
·
一、手机号脱敏
1、Function
/**
* 手机号脱敏
* @param {string} phone 手机号
* @returns {string} 脱敏后的手机号
*/
function desensitizePhone(phone) {
if (!phone || phone.length !== 11) return phone;
return phone.replace(/(\d{3})\d{4}(\d{4})/, "$1****$2");
}
2、Test
const phone = "13812345678";
const result = desensitizePhone(phone);
console.log(result);
# 输出结果
138****5678
二、身份证号脱敏
1、Function
/**
* 身份证号脱敏
* @param {string} idCard 身份证号
* @returns {string} 脱敏后的身份证号
*/
function desensitizeIdCard(idCard) {
if (!idCard) return idCard;
const len = idCard.length;
if (len === 15) {
return idCard.replace(/(\d{4})\d{7}(\d{4})/, "$1*******$2");
} else if (len === 18) {
return idCard.replace(/(\d{4})\d{10}(\d{4})/, "$1**********$2");
}
return idCard;
}
2、Test
const idCard = "340122200609274190";
const result = desensitizeIdCard(idCard);
console.log(result);
# 输出结果
3401**********4190
三、邮箱脱敏
1、Function
/**
* 邮箱脱敏
* @param {string} email 邮箱
* @returns {string} 脱敏后的邮箱
*/
function desensitizeEmail(email) {
if (!email) return email;
const atIndex = email.indexOf("@");
if (atIndex <= 1) return email;
const prefix = email.substring(0, atIndex);
const suffix = email.substring(atIndex);
if (prefix.length <= 3) {
return prefix.charAt(0) + "****" + suffix;
} else {
return prefix.substring(0, 3) + "****" + suffix;
}
}
2、Test
const email = "test@hello.com";
const result = desensitizeEmail(email);
console.log(result);
# 输出结果
tes****@hello.com
四、姓名脱敏
1、Function
/**
* 姓名脱敏
* @param {string} name 姓名
* @returns {string} 脱敏后的姓名
*/
function desensitizeName(name) {
if (!name) return name;
const len = name.length;
if (len <= 1) return name;
if (len === 2) return name.charAt(0) + "*";
return name.charAt(0) + "*".repeat(len - 1);
}
2、Test
const name1 = "张三";
const name2 = "李四";
const name3 = "王老五";
const result1 = desensitizeName(name1);
const result2 = desensitizeName(name2);
const result3 = desensitizeName(name3);
console.log(result1);
console.log(result2);
console.log(result3);
# 输出结果
张*
李*
王**
五、银行卡号脱敏
1、Function
/**
* 银行卡号脱敏
* @param {string} bankCard 银行卡号
* @returns {string} 脱敏后的银行卡号
*/
function desensitizeBankCard(bankCard) {
if (!bankCard) return bankCard;
const len = bankCard.length;
if (len <= 4) return bankCard;
return "*".repeat(len - 4) + bankCard.substring(len - 4);
}
2、Test
const bankCard = "6225123443218888";
const result = desensitizeBankCard(bankCard);
console.log(result);
# 输出结果
************8888

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)