>

이메일 주소 abcdef@gmail.com=>abXXX@gmail.com을 JavaScript로 숨기고 싶습니다

나는 /(?<=.{2}).(?=[^@]*?@)/ 정규식을 사용했지만 인터넷 익스플로러 및 Mozilla에서 작동하지 않으므로 모든 브라우저에서 작동하는 정규식이 필요합니다 (JavaScript)

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


  • 답변 # 1

    이 옵션을 사용하면 룩백 사용을 피할 수 있습니다 :

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

    여기서 이메일 이름의 세 번째 문자를 정적 XXX 로 항상 표시하여 약간의 지름길을 가졌습니다. . 우리는 같은 길이의 이름을 유지하려고 노력할 수 있지만 더 많은 작업이 필요합니다. 실제 길이를 줄임으로써 이메일 마스킹의 목적을 부분적으로 상실하기 때문에 실제로는 그렇게하지 않는 것이 좋습니다.

  • 답변 # 2

    이 간단한 작업을 위해 정규 표현식이 필요하지 않습니다. 이것은 똑같이 잘 작동합니다 :

    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))
    
    

  • 이전 typescript - 복잡한 유형 추론 TS에서도 가능하지만
  • 다음 c - OpenSSL 111에서 DTLS 서버를 사전에 준비하는 방법