当前位置:首页 > JavaScript

js实现电话号码脱敏

2026-03-01 22:44:57JavaScript

电话号码脱敏的实现方法

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

正则表达式替换法

使用正则表达式可以高效地匹配和替换电话号码中的特定部分:

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

字符串截取拼接法

js实现电话号码脱敏

对于固定格式的电话号码,可以直接截取和拼接字符串:

function maskPhoneNumber(phone) {
  const prefix = phone.substring(0, 3);
  const suffix = phone.substring(phone.length - 4);
  return `${prefix}${suffix}`;
}

国际化处理方案

考虑到不同国家的电话号码格式不同,可以增加更灵活的处理:

js实现电话号码脱敏

function maskPhoneNumber(phone, visibleDigits = 4) {
  const maskLength = phone.length - visibleDigits * 2;
  if (maskLength <= 0) return phone;

  const prefix = phone.substring(0, visibleDigits);
  const suffix = phone.substring(phone.length - visibleDigits);
  return prefix + '*'.repeat(maskLength) + suffix;
}
// 示例:maskPhoneNumber('+8613812345678', 3) -> +86*678

处理带区号的电话号码

对于包含区号的电话号码,可以先提取区号再处理:

function maskPhoneWithAreaCode(phone) {
  const parts = phone.split(/(?<=\d)\s+/);
  if (parts.length > 1) {
    return parts[0] + ' ' + maskPhoneNumber(parts[1]);
  }
  return maskPhoneNumber(phone);
}
// 示例:010 13812345678 -> 010 1385678

注意事项

  • 处理前应先验证电话号码格式的有效性
  • 国际号码需要考虑不同国家的号码长度和格式
  • 在显示时建议添加提示说明这是脱敏后的号码
  • 移动端显示需考虑不同屏幕尺寸下的展示效果

以上方法可以根据实际业务需求进行组合或调整,核心思想都是保留部分关键信息的同时隐藏敏感内容。

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

相关文章

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval 实…

js实现选项卡

js实现选项卡

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

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClip…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaS…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…