JavaScript实现手机号中间四位隐藏为****的多种方案
本文详细讲解在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实现手机号中间数字替换为****的多种方法介绍完毕。如需了解更多相关内容,可搜索本站往期文章或继续浏览后续文章,感谢大家的支持!
D3.js 比例尺与坐标轴的配置详解
2026-11-05 16:54:46
JavaScript怎么遍历对象的Symbol键和不可枚举属性
2026-11-05 13:13:39
封装一个健壮的JS字符串判空工具函数
2026-11-05 12:16:14
JavaScript合并数组的三种常用方法:concat、扩展运算符与push
2026-11-05 11:22:29
JavaScript立即执行函数(IIFE)是什么及基本语法
2026-11-05 10:51:19
