一、手机号脱敏

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
Logo

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

更多推荐