티스토리 뷰

정규식 패턴을 이용한 이메일 마스킹 처리

앞 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

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday