다들 웹 사이트에서 내 아이디나 이메일이 ok*****@gmail.com 이런식으로 *표로 표시되는 것은 본 적이 있을 것이다.
보안적으로 요청사항이 들어와서 (비록 DB털리면 다 털리겠지만) 작업했는데,
간지나게 하고 싶어서 정규식 찾아봤는데.... ㅠㅠ 해탈했다.
진짜 정규식은 1도 모르겠다.
도움을 얻어서 간지나는 법을 찾았는데...

 

JS

userEmail = 'abcdefg@gmail.com';

var id =userEmail.split("@")[0].replace(/(?<=.{1})./gi,"*");
var mail =userEmail.split("@")[1].replace(/(?=.{2})./gi,"*");
userEmail= id+"@"+mail;

alert(userEmail);

 

 

결과를 보면

 

id는 a*****으로 나오고 mail은 ******m으로 나온다.

요청사항이 a*****@********m이었기 때문에 저렇게하는 방법을 찾아봤다.

 

출처는 아래 주소이며 나는 이 출처를 통해 배움을 얻은 분에게 카페 답변으로 코드를 받았다.<-

http://8boknote.tistory.com/98

 

근데!!!!!!!!!

사파리에서 정규식이 안 먹더라... ?<= 이 부분에서 문법 에러 탁탁 뱉던데... 

내가 작성한 정규식이 아니라서 고치기 뭐했다.. (물론 못 고침)

 

그러면서 그냥 간지를 버렸다. 

시간도 촉박...

// 이메일 마스킹 처리
function emailSecurity(userEmail){
  var id = userEmail.split('@')[0];
  var mail = userEmail.split('@')[1];
  
  var maskingId = function(id){
    var splitId = id.substring(0,1);

    for(var i = 1; i < id.length; i++){
        splitId += '*';
    }
    return splitId;
  };

  var maskingMail = function(mail){
    var splitMail = '';

    for(var i = 1; i < mail.length; i++){
        splitMail += '*';
    }
    splitMail += mail.substring(mail.length-1,mail.length);
    return splitMail;
  };

  userEmail = maskingId(id) + '@' + maskingMail(mail);
  
  return userEmail;
}
 

 

+ Recent posts