在特定位置将安全号码更改为 X
Posted
技术标签:
【中文标题】在特定位置将安全号码更改为 X【英文标题】:Change security number to X on specific places 【发布时间】:2021-10-12 02:30:38 【问题描述】:我是在特定位置将数字替换为某些字符的新手。我有这组号码 123-45-6789 但我只需要显示这样的 XXX-XX-6789。但我只需要更改不包括“破折号”的数字。
下面是我的示例代码
var mainStr = $("#view_ssn").text(),
vis = mainStr.slice(-4),
countNum = '';
for(var i = (mainStr.length)-4; i>0; i--)
countNum += 'X';
$("#view_ssn").text(countNum+vis);
输出
XXXXXXX6789
【问题讨论】:
【参考方案1】:你可以简单地使用:
var ssn = "123-45-6789";
var output = ssn.replace(/\d(?=.5,)/g, "X");
console.log(output);
正则表达式模式\d(?=.5,)
背后的逻辑是替换输入社会安全号码中前面至少有 5 个字符的每个数字。这不包括 SSN 的最后 4 位。
【讨论】:
你太棒了。非常感谢。【参考方案2】:另一个选项可能是匹配确切的允许模式并捕获您想要保留在第 1 组中的部分。
在替换中使用 XXX-XX
并将其与组 1 值连接。
const regex = /^\d3-\d2(-\d4$)/;
const str = "123-45-6789";
console.log(str.replace(regex, (m, g1) => "XXX-XX" + g1));
【讨论】:
以上是关于在特定位置将安全号码更改为 X的主要内容,如果未能解决你的问题,请参考以下文章
如何检查传入号码数据是否大于或小于Firestore安全规则中的特定限制?