我是Java语言的新手,我想在JS中屏蔽电子邮件ID

[email protected]一样,应该屏蔽为 m********[email protected] 。我如何在js中实现。我下面的代码无法在浏览器中工作

 var maskid = "";
var myemailId =  "[email protected]";
var prefix= myemailId .substring(0, myemailId .lastIndexOf("@"));
var postfix= myemailId .substring(myemailId .lastIndexOf("@"));

for(var i=0; i<prefix.length; i++){
    if(i == 0 || i == prefix.length-1 ) {
        maskid = maskid + prefix[i].toString();
    }
    else {
        maskid = maskid + "*";
    }
}
maskid =maskid +postfix;

我要在JS中处理是必需的。

谢谢

最佳答案

您可以使用基于正则表达式的替换:

var maskid = myemailId.replace(/^(.)(.*)(.@.*)$/,
     (_, a, b, c) => a + b.replace(/./g, '*') + c
);

小心:
  • 在服务器端执行此操作,因为任何客户端替换都可能被用户覆盖。
  • 并非所有电子邮件地址都符合您的要求
  • ,当它匹配时,它也可能不会隐藏太多
  • 10-04 16:11