js中手机号脱敏

这段代码展示了如何使用JavaScript函数sencePhone来隐藏手机号码的中间四位数字,将其替换为****。该函数接收一个电话号码字符串作为输入,然后返回一个新的字符串,在原始号码的第四个字符处插入****,保留首三位和末四位。这对于保护个人隐私信息非常有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//通过字符串截取中间四位数字,转化为****
function sencePhone(val) { let returnVal = val if (val) { returnVal = val.substr(0, 3) + "****" + val.substr(7) } return returnVal }
sencePhone("15666666666");//156****6666
 
### JavaScript中实现手机号脱敏功能的方法 在JavaScript中,可以通过多种方式对手机号进行脱敏处理。以下是几种常见的方法及其具体实现: #### 方法一:使用正则表达式替换 通过定义一个匹配手机号的正则表达式,并将其中间四位替换成星号(*)来完成脱敏操作。 ```javascript // 定义一个手机号 let mobile = "13588888888"; // 定义手机号正则表达式 let reg = /^(1[3-9][0-9])\d{4}(\d{4}$)/; // 使用replace函数将中间4位替换为**** let hiddenMobile = mobile.replace(reg, "$1****$2"); console.log(hiddenMobile); // 输出: 135****8888 ``` 这种方法适用于标准格式的手机号码[^1]。 --- #### 方法二:自定义保留前后几位并动态调整 如果需要灵活控制保留前后的字符数量,则可以采用更通用的方式。此方法允许指定要保留的首尾字节数量。 ```javascript function hideIdCard(idCard, keepWord) { if (!idCard) { return idCard; } let digits = keepWord ? keepWord : 2, reg = new RegExp(`(^\\w{${digits}})(\\w+)(\\w{${digits}}$)`, 'g'); return idCard.replace(reg, function(...args){ let tempStr = ''; if(args[2] && args[2].length){ for(let i=0,len=args[2].length;i<len;i++){ tempStr += '*'; } } return args[1]+tempStr+args[3]; }); } let tel = "13634560734"; console.log(hideIdCard(tel, 3)); // 输出: 136***0734 ``` 该方案不仅限于手机号,还可以用于其他类型的身份证件号码等敏感信息的脱敏处理[^2]。 --- #### 方法三:利用字符串切片(slice) 对于简单的场景可以直接运用`slice()`函数提取所需部分再组合起来形成最终的结果。 ```javascript function dealTel(val){ return val.slice(0,3)+'****'+val.slice(-4); } let tel = "13634560734"; console.log(dealTel(tel)); // 输出: 136****0734 ``` 这种方式简洁明了,在性能上也有一定优势[^3]。 --- 尽管上述三种技术都可以有效地达到目的,但从安全性角度考虑,建议仅作为展示层面的数据遮掩手段,实际重要业务逻辑中的数据保护措施应放在服务端执行以防止潜在风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值