用javascript中的正则表达式屏蔽电话号码
我的应用程序有一个特定的电话号码格式,看起来像用javascript中的正则表达式屏蔽电话号码,javascript,regex,Javascript,Regex,我的应用程序有一个特定的电话号码格式,看起来像999.111.222,我有一个正则表达式模式在前端屏蔽它: /[0-9]{3}\[0-9]{3}\.([0-9]{3})/ 但最近,格式发生了变化,允许中间的三位数字少一位,因此现在999.11.222和999.111.222都匹配。如何相应地更改正则表达式 “999.111.222”。替换(/[0-9]{3}\.[0-9]{3}\.([0-9]{3})/,“xxx.xxx.$1”) 预期输出: "999.111.222" // xxx.xxx
999.111.222
,我有一个正则表达式模式在前端屏蔽它:
/[0-9]{3}\[0-9]{3}\.([0-9]{3})/
但最近,格式发生了变化,允许中间的三位数字少一位,因此现在999.11.222
和999.111.222
都匹配。如何相应地更改正则表达式
“999.111.222”。替换(/[0-9]{3}\.[0-9]{3}\.([0-9]{3})/,“xxx.xxx.$1”)
预期输出:
"999.111.222" // xxx.xxx.222
"999.11.222" // xxx.xx.222
事实上,您不仅应该更改正则表达式,还应该更改回调替换函数:
const regex=/[0-9]{3}\.([0-9]{2,3})\.([0-9]{3})/;
const cbFn=(all,g1,g2)=>`xxx.xx${(g1.length==3?'x':'')}.${g2};
const a=“999.11.222”。替换(regex,cbFn);
const b=“999.111.222”。替换(regex,cbFn);
控制台日志(a,b)代码>将{3}替换为{2,3}以匹配两位或三位数字
/[0-9]{3}\.[0-9]{2,3}\.([0-9]{3})/
有关参考信息,请参见例如使用
console.log(
“999.11.222.”替换(/[0-9]{3}\.([0-9]{2,3})\.([0-9]{3})/,函数($0,$1,$2)
{返回'xxx.+$1.replace(/\d/g,'x')+'.+$2+';})
)
这对OP没有帮助,因为第二部分(点之间)需要用x
遮罩。