当前位置:首页 > JavaScript

js实现脱敏

2026-03-15 08:43:33JavaScript

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

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

手机号脱敏

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

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"

姓名脱敏

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

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位:

js实现脱敏

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
分享给朋友:

相关文章

原生js实现轮播图

原生js实现轮播图

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

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的J…

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…