You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则表达式隐藏号码中间6位:替换结果不符求解决方案

正则替换号码中间6位为星号的正确实现

问题分析

输入号码:54998524154,预期输出54******154,现有代码返回54*154的核心原因是:替换操作将匹配到的6位数字直接替换成了单个*,而非对应长度的6个星号。

解决方案

方案1:直接指定6个星号作为替换值

const phone = "54998524154"
const result = phone.replace(/(?<=^\d{2})\d{6}/g, '******')
console.log(result) // 输出:54******154

方案2:动态生成对应长度的星号(适配可变位数场景)

如果后续需要替换的位数可能调整,可通过替换函数自动生成与匹配长度一致的星号:

const phone = "54998524154"
const result = phone.replace(/(?<=^\d{2})\d{6}/g, match => '*'.repeat(match.length))
console.log(result) // 输出:54******154

正则说明

/(?<=^\d{2})\d{6}/g 是一个正向先行断言正则,作用是精准匹配开头2位数字之后的连续6位数字,确保只替换中间目标段,不会改动前后的数字部分。

内容的提问来源于stack exchange,提问作者Lucy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 08:25:45