当前位置:首页 > JavaScript

js实现电话号码脱敏

2026-01-31 07:34:07JavaScript

电话号码脱敏的实现方法

在JavaScript中,电话号码脱敏通常需要隐藏中间几位数字以保护用户隐私。以下是几种常见的实现方式:

js实现电话号码脱敏

使用正则表达式替换

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

处理不同长度的电话号码

function desensitizePhone(phone) {
  const len = phone.length;
  if (len <= 7) return phone;
  const visibleDigits = Math.floor(len / 3);
  const start = phone.slice(0, visibleDigits);
  const end = phone.slice(-visibleDigits);
  return start + '*'.repeat(len - 2 * visibleDigits) + end;
}
// 示例: desensitizePhone('4001234567') → "400*4567"

国际化电话号码处理

function desensitizeInternationalPhone(phone) {
  const countryCode = phone.match(/^\+\d+/)?.[0] || '';
  const mainNumber = phone.replace(countryCode, '');
  const visibleDigits = Math.floor(mainNumber.length / 4);
  const start = mainNumber.slice(0, visibleDigits);
  const end = mainNumber.slice(-visibleDigits);
  return countryCode + start + '*'.repeat(mainNumber.length - 2 * visibleDigits) + end;
}
// 示例: desensitizeInternationalPhone('+8613812345678') → "+861385678"

保留更多信息的脱敏方式

function smartDesensitize(phone) {
  const isMobile = /^1[3-9]\d{9}$/.test(phone);
  if (isMobile) {
    return phone.replace(/(\d{3})\d{4}(\d{4})/, '$1$2');
  }
  return phone.replace(/(\d{2})\d{3}(\d{2})/, '$1*$2');
}
// 示例: 
// smartDesensitize('13812345678') → "1385678"
// smartDesensitize('01012345678') → "01*678"

这些方法可以根据实际需求进行调整,例如改变显示的数字位数或脱敏符号。在处理用户数据时,确保符合相关隐私保护法规的要求。

标签: 电话号码js
分享给朋友:

相关文章

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

js实现跳转

js实现跳转

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

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <di…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…