当前位置:首页 > 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实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前年…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码…

js实现vue路由

js实现vue路由

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

js图片轮播的实现

js图片轮播的实现

基础图片轮播实现 使用HTML、CSS和JavaScript实现一个简单的图片轮播效果。HTML部分定义轮播容器和图片,CSS负责样式和过渡效果,JavaScript处理逻辑。 <div cl…

js 实现验证码

js 实现验证码

实现验证码的 JavaScript 方法 生成随机验证码 验证码通常由随机字符(数字、字母或混合)组成。以下代码生成一个 6 位随机验证码(数字和字母混合): function generateCa…