首页 > 解决方案 > 部分屏蔽电子邮件地址 - javascript

问题描述

如何在 Javascript 中部分隐藏这样的电子邮件地址?

examplemail@domain.com => ex**pl**ai*@domain.com

我已经修改了下面的代码,但是可以得到我需要的结果,它只是返回这个结果:

考试********@domain.com

email.replace(/(.{4})(.*)(?=@)/, function (gp1, gp2, gp3) {
for (let i = 0; i < gp3.length; i++) {
  gp2 += "*";
}
return gp2;

});

标签: javascriptnode.jsregexstringmask

解决方案


您可以搜索一组四个字符并替换一组两个字符,直到找到一个@标志-

const
    mask = string => string.replace(
        /(..)(.{1,2})(?=.*@)/g,
        (_, a, b) => a + '*'.repeat(b.length)
    );

console.log(mask('examplemail@domain.com'));


推荐阅读