如何在Javascript中部分隐藏这样的电子邮件地址?
examplemail@domain.com => ex**pl**ai*@domain.com
我已经修改了下面的代码,但是可以得到我所需要的结果,它只是返回这个结果:
exam*******@domain.com
email.replace(/(.{4})(.*)(?=@)/, function (gp1, gp2, gp3) {
for (let i = 0; i < gp3.length; i++) {
gp2 += "*";
}
return gp2;
});
5条答案
按热度按时间guz6ccqo1#
你可以搜索一组四个字符,然后替换一组两个字符,直到你找到一个
@
符号-yv5phkfx2#
这是解决问题的一种方法:
368yc8dk3#
"只要这样做"
bzzcjhmw4#
作为可接受答案的正则表达式,我建议通过使用一个非字符类
[^\s@]
来匹配除空格字符或@本身之外的任何字符,从而确保只匹配一个@符号。这样,您也可以将它用于多个电子邮件地址,因为使用带有多个@符号的
(?=.*@)
可能会给予意外的结果。Regex demo
在您尝试的模式中,您使用
(.{4})
匹配了4次任何字符。重复4个字符可以使用正lookbehind来完成。然后您可以在没有组的情况下获得匹配。首先向左Assert一个空白边界。然后从2个字符的偏移量开始,可选地重复4个字符。
然后匹配1个或2个字符,并在右侧声明@。
olmpazwi5#
如果您只想替换@附近的数字,并允许它根据长度添加 *,您可以这样做