티스토리 뷰

정규식 패턴을 이용한 카드번호 마스킹 처리

앞 7자리부터 6개의 문자를 "*"로 치환한다.

 

 

private final static Pattern pan_pattern = Pattern.compile("^(\\d{4}\\D?\\d{2})(\\d{2})(\\D?)(\\d{4})(\\D?\\d{4})$");
public static boolean isPAN(String pan) {
	Matcher matcher =  pan_pattern.matcher(pan);
	return matcher.matches();
}

public static String maskPAN(String pan) {
	Matcher matcher =  pan_pattern.matcher(pan);
	if(matcher.find()) {
		return new StringBuffer (matcher.group(1)).append("**").append(matcher.group(3)).append("****").append(matcher.group(5)).toString();
	} else {
		return pan;
	}
}

 

테스트 결과

 


카드번호 : 1234567890123456 ==> 123456******3456
카드번호 : 1234-5678-9012-3456 ==> 1234-56**-****-3456

 

'지식정보' 카테고리의 다른 글

netstat 사용법  (0) 2021.01.08
Oracle FETCH  (0) 2020.05.11
[JAVA] 정규식 주민등록번호 마스킹처리  (0) 2019.07.16
[JAVA] 정규식 이메일 마스킹 처리  (0) 2019.07.16
[JAVA] 정규식 전화번호 마스킹 처리  (0) 2019.07.16
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday