当前位置:首页 > JavaScript

js实现脱敏

2026-03-15 08:43:33JavaScript

实现字符串脱敏的常见方法

在JavaScript中实现字符串脱敏(即隐藏敏感信息的部分内容)可以通过多种方式完成。以下是几种典型场景的实现方案:

手机号脱敏

手机号通常显示前3位和后4位,中间用星号替代:

js实现脱敏

function maskPhone(phone) {
  return phone.replace(/(\d{3})\d{4}(\d{4})/, '$1$2');
}
// 示例:maskPhone('13812345678') → "1385678"

身份证号脱敏

身份证号保留前4位和后4位:

function maskIdCard(id) {
  return id.replace(/(\d{4})\d{10}(\w{4})/, '$1$2');
}
// 示例:maskIdCard('110105199003072774') → "11012774"

姓名脱敏

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

js实现脱敏

function maskName(name) {
  if (name.length <= 1) return name;
  return name[0] + '*'.repeat(name.length - 1);
}
// 示例:maskName('张三') → "张*"

通用脱敏函数

更灵活的脱敏函数,可自定义保留位数和替换符号:

function maskString(str, visibleStart = 3, visibleEnd = 4, maskChar = '*') {
  if (str.length <= visibleStart + visibleEnd) return str;
  const start = str.slice(0, visibleStart);
  const end = str.slice(-visibleEnd);
  return start + maskChar.repeat(str.length - visibleStart - visibleEnd) + end;
}
// 示例:maskString('abcdefghijk', 2, 3) → "abijk"

邮箱脱敏

保留邮箱前缀前2位和后1位:

function maskEmail(email) {
  const [prefix, domain] = email.split('@');
  const maskedPrefix = prefix.length > 3 
    ? prefix.slice(0, 2) + '*'.repeat(prefix.length - 3) + prefix.slice(-1)
    : prefix;
  return maskedPrefix + '@' + domain;
}
// 示例:maskEmail('example@domain.com') → "ex*e@domain.com"

注意事项

  1. 处理前应验证输入字符串的有效性
  2. 对于不同长度的字符串可能需要不同的脱敏策略
  3. 敏感数据的定义可能因业务场景而异
  4. 在前端展示脱敏数据时,建议后端也进行相应处理

这些方法可以根据具体业务需求进行调整,确保在保护用户隐私的同时不影响正常业务功能。

标签: js
分享给朋友:

相关文章

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swipe…

js实现复制

js实现复制

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

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…