티스토리 뷰
정규식 패턴을 이용한 이메일 마스킹 처리
앞 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
'지식정보' 카테고리의 다른 글
[JAVA] 정규식 카드번호 마스킹처리 (0) | 2019.07.16 |
---|---|
[JAVA] 정규식 주민등록번호 마스킹처리 (0) | 2019.07.16 |
[JAVA] 정규식 전화번호 마스킹 처리 (0) | 2019.07.16 |
[JAVA] 문자열에서 숫자만 추출 (2) | 2019.06.24 |
Benthic Software Golden6 로깅 (0) | 2019.06.24 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday