当前位置:首页 > JavaScript

js实现脱敏

2026-02-02 08:49:37JavaScript

实现脱敏的常见方法

使用正则表达式替换敏感信息 正则表达式可以快速匹配特定模式的字符串并进行替换。例如隐藏手机号中间四位:

const phone = '13812345678';
const desensitizedPhone = phone.replace(/(\d{3})\d{4}(\d{4})/, '$1$2');
// 输出: 1385678

处理身份证号 身份证号通常保留前6位和后4位,中间用星号代替:

const idCard = '110105199003072345';
const desensitizedId = idCard.replace(/(\d{6})\d{8}(\d{4})/, '$1$2');
// 输出: 1101052345

处理银行卡号 银行卡号一般显示前6位和后4位:

js实现脱敏

const bankCard = '6225880123456789';
const desensitizedCard = bankCard.replace(/(\d{6})\d{6}(\d{4})/, '$1$2');
// 输出: 6225886789

处理姓名 中文姓名通常保留姓氏,名字用星号代替:

const name = '张三';
const desensitizedName = name.replace(/([\u4e00-\u9fa5])[\u4e00-\u9fa5]/, '$1*');
// 输出: 张*

处理邮箱地址 邮箱可保留@符号前的第一个字符和最后一个字符:

js实现脱敏

const email = 'example@domain.com';
const desensitizedEmail = email.replace(/(.).*@(.*)/, '$1*@$2');
// 输出: e*@domain.com

封装通用脱敏函数

可以创建一个通用函数处理多种脱敏场景:

function desensitize(str, type) {
  switch(type) {
    case 'phone':
      return str.replace(/(\d{3})\d{4}(\d{4})/, '$1$2');
    case 'idCard':
      return str.replace(/(\d{6})\d{8}(\d{4})/, '$1$2');
    case 'bankCard':
      return str.replace(/(\d{6})\d{6}(\d{4})/, '$1$2');
    case 'name':
      return str.replace(/([\u4e00-\u9fa5])[\u4e00-\u9fa5]/, '$1*');
    case 'email':
      return str.replace(/(.).*@(.*)/, '$1*@$2');
    default:
      return str;
  }
}

注意事项

脱敏处理应考虑业务需求,不同场景可能需要不同的脱敏规则。敏感信息处理应遵循最小化原则,在满足业务需求的前提下尽可能减少敏感信息的暴露。

对于更复杂的需求,可以考虑使用第三方库如lodash的掩码功能,或者专门的数据脱敏库。在生产环境中,建议将脱敏逻辑放在服务端处理,避免在前端暴露原始数据。

标签: js
分享给朋友:

相关文章

js实现

js实现

JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document…

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClip…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…