지식정보
[JAVA] 정규식 이메일 마스킹 처리
onggun
2019. 7. 16. 10:24
정규식 패턴을 이용한 이메일 마스킹 처리
앞 3자리를 제외한 나머지를 "*" 로 마스킹 처리 한다.
- 3자리 이하인 경우는 ... -
private final static Pattern email_chk_pattern = Pattern.compile("^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
private final static Pattern email_pattern = Pattern.compile("^(...)(.*)@(.*)$");
public static boolean isEmail(String email) {
Matcher matcher = email_chk_pattern.matcher(email);
return matcher.matches();
}
public static String maskEmail(String email) {
if (StringUtils.length(email) < 3) {
return email;
}
Matcher matcher = email_pattern.matcher(email);
if(matcher.find()) {
if(matcher.groupCount() == 3) {
String replaceTarget = matcher.group(2);
char[] c = new char[replaceTarget.length()];
Arrays.fill(c, '*');
return new StringBuffer (matcher.group(1)).append(String.valueOf(c)).append("@").append(matcher.group(3)).toString();
} else {
return email;
}
} else {
return email;
}
}
테스트 결과
이메일 : abcdefg123@test.co.kr ==> abc*******@test.co.kr