屏蔽并在每 3 位数字后插入连字符

问题描述 投票:0回答:2

我正在尝试替换下面的字符串,如下所示:

var phone = "9871234567"
result = xxx-xxx-4567

下面是我编写的js代码,但这并没有给我正确的结果。

var lastphdigit = phone.replace(/\d(?=(?:\D*\d){4})/g, "x");
var lastphdighyp = lastphdigit.replace(/.{3}(?!$)/g, '$&-'); //xxx-xxx-456-7
javascript regex string replace rhino
2个回答
0
投票

正则表达式对于这个问题来说不是必需的。使用

slice
会简单得多,只需获取最后 4 位数字即可

var phone = "9871234567"
console.log(`xxx-xxx-${phone.slice(6)}`)


0
投票

受到 @depperm 评论的启发,为什么不尝试一下呢? 我们从电话号码的末尾开始切掉 4 位数字,然后将其附加到静态字符串中。

var phone = "9871234567";
var maskedPhone = "xxx-xxx-"+ phone.slice(-4);

这样,如果电话号码中的位数是可变的,您仍然可以解密最后 4 位数字。 如果考虑到这一点,您还应该计算原始电话号码中的位数,并相应地添加 x。

© www.soinside.com 2019 - 2024. All rights reserved.