Javascript
이메일 프론트단 보안하기(*, 별표, asterisk처리)
주섬이
2018. 10. 10. 18:51
반응형
다들 웹 사이트에서 내 아이디나 이메일이 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;
}
반응형