当前位置:首页 > JavaScript

js实现电话号码脱敏

2026-04-04 23:34:05JavaScript

电话号码脱敏的实现方法

在JavaScript中实现电话号码脱敏,主要目的是保护用户隐私,通常保留前几位和后几位,中间用星号或其他符号代替。以下是几种常见的实现方式:

使用字符串截取和替换

function maskPhoneNumber(phone) {
  const start = phone.slice(0, 3);
  const end = phone.slice(-4);
  return `${start}${end}`;
}

console.log(maskPhoneNumber('13812345678')); // 输出: 1385678

使用正则表达式替换

function maskPhoneNumber(phone) {
  return phone.replace(/(\d{3})\d{4}(\d{4})/, '$1$2');
}

console.log(maskPhoneNumber('13812345678')); // 输出: 1385678

支持不同长度的电话号码

function maskPhoneNumber(phone) {
  const length = phone.length;
  const visibleDigits = Math.floor(length / 3);
  const start = phone.slice(0, visibleDigits);
  const end = phone.slice(-visibleDigits);
  const masked = '*'.repeat(length - 2 * visibleDigits);
  return start + masked + end;
}

console.log(maskPhoneNumber('13812345678')); // 输出: 138*678
console.log(maskPhoneNumber('1234567890'));  // 输出: 123*890

国际电话号码处理

对于国际电话号码,可能需要更复杂的处理:

function maskInternationalPhone(phone) {
  // 去除所有非数字字符
  const digits = phone.replace(/\D/g, '');
  const countryCode = digits.length > 10 ? `+${digits.slice(0, -10)}` : '';
  const localNumber = digits.slice(-10);
  const maskedLocal = localNumber.replace(/(\d{3})\d{4}(\d{3})/, '$1$2');
  return countryCode + maskedLocal;
}

console.log(maskInternationalPhone('+8613812345678')); // 输出: +86138678

注意事项

js实现电话号码脱敏

  • 确保输入是有效的电话号码,可以添加验证逻辑
  • 考虑不同国家/地区的电话号码格式差异
  • 在显示脱敏号码时,可能需要保留原始数据用于后台处理
  • 脱敏程度可根据业务需求调整,如显示更多或更少位数

这些方法可以根据具体业务需求进行调整,例如改变显示的位数数量或使用的掩码字符。

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

相关文章

js实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js实现图表

js实现图表

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

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 /…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。 &…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…