我需要使用正则表达式掩盖javascript中的电子邮件地址

时间:2019-07-06 10:00:04

标签: javascript reactjs

我想在JavaScript中屏蔽电子邮件地址abcdef@gmail.com=> abXXX@gmail.com

我使用/(?<=.{2}).(?=[^@]*?@)/正则表达式,但无法在Internet Explorer和Mozilla中工作,因此我需要可在所有浏览器(JavaScript)中正常工作的正则表达式< / p>

maskedEmail = stringObj.replace(/(?<=。{2})。(?= [^ @] *?@)/ g,“ X”);

2 个答案:

答案 0 :(得分:0)

请尝试使用此选项,这样可以避免使用后退:

var email = "abcdef@gmail.com";
var output = email.replace(/^(.{2})[^@]+/, "$1XXX");
console.log(email);
console.log(output);

请注意,在这里我采取了一些捷径,始终使用静态XXX代表电子邮件名称的第三个字符。我们可以尝试保留相同的长度名称,但这需要更多的工作。我实际上建议不要这样做,因为这样做会通过放弃实际长度而部分地掩盖了电子邮件的掩盖目的。

答案 1 :(得分:0)

此简单操作不需要正则表达式。这应该同样有效:

var emailAddress = "john.doe@gmail.com"
    
    function maskEmail(email) {
      let split = email.split('@')
      return email.substr(0,1) + new Array(split[0].length - 1).fill('x').join('') + "@" + split[1]
    }
    
    console.log(maskEmail(emailAddress))