JavaScript实现手机号中间四位隐藏为****的多种方案

作者:异步漫步时间:2026-10-31 06:14:16浏览:241

本文详细讲解在JavaScript中实现手机号中间数字替换为****的四种常见方法。通过split与splice组合、substr截取拼接、substring结合replace以及正则表达式匹配替换,覆盖不同场景下的字符串处理需求,帮助开发者掌握前端数据脱敏的核心技巧。

本文旨在介绍一个常见且基础的前端功能:将手机号码中间的数字替换为****。

此类功能在各类应用中极为普遍,例如微信账号安全页、掘金个人设置、支付宝证件信息展示以及各大银行App的银行卡号显示等涉及隐私保护的场景中,均能看到类似处理。尽管需求看似简单,但其背后的实现逻辑值得深入探讨。

实现该功能有多种技术路径,本文主要采用JavaScript语言进行演示。若文中存在疏漏或需优化之处,欢迎指正;如有更优方案,也欢迎交流分享。

下文涉及的方法均为JavaScript开发者所熟知,但部分细节用法可能易被遗忘。此处将对所用方法进行简要回顾,建议不熟悉相关API的读者先行复习。

接下来直接进入核心内容。

第一种方案:结合字符串与数组的常用方法,具体包括字符串的split()以及数组的splice()和join()。

在正式编码前,我们先回顾这些基础API的行为特征。

  • split():用于将字符串按指定分隔符拆分为子字符串数组,并返回该数组。

注意:该方法返回新数组,不修改原始字符串。若使用空字符串""作为分隔符,则会对字符串进行逐字符拆分。参考文档:www.w3school.com.cn/jsref/jsref…

具体示例如下。

const str = “hello”
let arr = str.split("");
console.log(arr); // h,e,l,l,o
  • splice():用于向数组添加或删除元素,并返回被删除的项目。

注意:splice()该方法会修改原始数组。参考文档:www.w3school.com.cn/jsref/jsref…

具体示例如下。

const arr = ["a","b","c","d"];
arr.splice(1,2,"e","gg","d"); //从数字索引的第一位开始,删除两个内容,向数组添加”e“和”gg“两项。
console.log(arr); // ["a","e","gg","d"];
  • join():将数组元素连接为字符串,元素间由指定分隔符隔开,默认分隔符为逗号(,)。

注意:join()该方法不会改变原数组。

具体示例如下。

const arr = ['a','b','c','d'];
let result = arr.join();
console.log(result); // a,b,c,d

功能实现代码如下。

const telphone = '13300009999';
let telArr = telphone.split();
telArr.splice(3,4,'****');
let result = telArr.join(); //因为不会改变原数组,需要用一个新的变量去接收
console.log(result); // 1330****999

第二种方案:利用字符串的substr()方法。

  • substr():用于提取字符串中从指定位置开始的指定数量的字符。

注意:substr() 方法不会更改原始字符串。 具体示例如下。

const str = 'Hello World';
let result = str.substr(1,4);
console.log(result); //ello

功能实现代码如下。

const telphone = '13300009999';
let result = telphone.substr(0,4) + '****' + telphone.substr(8);
console.log(result);// 1330****999
//第二句代码解释:
//使用 `substr` 方法截取电话号码的前四位,然后拼接上'****',
//再拼接上电话号码从索引为8开始的剩余部分,将结果赋值给变量result。

第三种方案:利用字符串的substring()和replace()方法。

  • substring():用于提取字符串中指定索引(位置)之间的字符,并返回子字符串。 注意:substring() 方法不会更改原始字符串。 具体示例如下。

const str = 'Hello World';
let result = str.substring(1,4);
console.log(result); //ell
  • replace():该方法在字符串中搜索值或正则表达式,并返回已替换值的新字符串。

注意:replace() 方法不会更改原始字符串。 具体示例如下。

const str = 'Hello World';
let result = str.replace("Hello","Hi");
console.log(result); //Hi World

功能实现代码如下。

const telphone = '13300009999';
let result = telphone.replace(telphone.substring(3,8),'****');
console.log(result);// 1330****999

上述replace()方法中提及了正则表达式,因此我们也可以直接使用正则表达式来实现此功能。参考文档:www.w3school.com.cn/jsref/jsref… www.w3school.com.cn/js/js_regex…

  • /d:用于查找数字字符。
  • 1,1,1,2,...,$99:表示与正则规则中的第1到第99个子表达式相匹配的文本。

功能实现代码如下。

const telphone = '13300009999';
const reg = /(\d{4})\d{4}(\d{3})/;
let result = telphone.replace(reg,"$1****$2");
console.log(result);// 1330****999

至此,关于使用JavaScript实现手机号中间数字替换为****的多种方法介绍完毕。如需了解更多相关内容,可搜索本站往期文章或继续浏览后续文章,感谢大家的支持!

作者最新文章