无极低码 :https://wheart.cn

// 基础脱敏函数,保留首尾固定长度的字符,中间脱敏
2function desensitizeString(str, headLen = 3, tailLen = 4, maskChar = '*') {
3  if (!str || str.length <= headLen + tailLen) {
4    // 如果字符串为空或者长度小于等于保留的首尾长度之和,则直接返回原字符串或空字符串
5    return str || '';
6  }
7
8  const maskedPartLength = str.length - headLen - tailLen;
9  
10  // 创建脱敏部分的字符串
11  let maskedPart = new Array(maskedPartLength + 1).join(maskChar);
12
13  // 返回拼接后的脱敏字符串
14  return str.slice(0, headLen) + maskedPart + str.slice(-tailLen);
15}
 

// 使用示例:
18let phoneNumber = "13812345678";
19let desensitizedPhone = desensitizeString(phoneNumber); // 默认脱敏后如:138****5678
20
21let idCardNumber = "110101199001011234";
22let desensitizedIdCard = desensitizeString(idCardNumber, 6, 4); // 自定义脱敏后如:110101********1234


无极低码 :https://wheart.cn
最新文章