当前位置:首页 > 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位:

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*');
// 输出: 张*

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

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;
  }
}

注意事项

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

js实现脱敏

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

标签: js
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Par…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…