在特定位置将安全号码更改为 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的主要内容,如果未能解决你的问题,请参考以下文章

如何将2147483647更改为原始手机号码[关闭]

将 web-API 注册字段从电子邮件更改为电话号码

如何检查传入号码数据是否大于或小于Firestore安全规则中的特定限制?

如何从 CSV 更改 AD 中的多个电话号码

C#winform中如何限制txtbox输入只能是数字和特定字母X,我想做一个身份证号码得输入框!

Excel表格输入手机号码或一组数字后变成##,怎么办?