티스토리 뷰

 ORACLE에서도 정규식표현으로 휴대전화 포맷을 적용할 수 있지만 JAVA에서도 간단하게 적용 가능하다.


휴대전화번호는 무조건 3자리-3 또는 4자리-4자리로 되어 있기 때문에 다음과 같이 처리 가능하다.

public static String makePhoneNumber(String phoneNoStr) {

	  String regEx = "(\\d{3})(\\d{3,4})(\\d{4})";
	  if(!Pattern.matches(regEx, phoneNoStr)) return null;
	  return phoneNoStr.replaceAll(regEx, "$1-$2-$3");

   }


만약 앞의 3자리 값을 고정시키고 싶다면 다음과 같이 해 보는 것도 방법이다.

public static String makePhoneNumber(String phoneNoStr) {

	  String regEx = "(010|011|016|017|018|019)(.+)(.{4})";
	  if(!Pattern.matches(regEx, phoneNoStr)) return null;
	  return phoneNoStr.replaceAll(regEx, "$1-$2-$3");

   }

이렇게 하면 앞 3자리가 휴대전화번호 시작번호인지 확인을 하게 되어 잘못된 입력을 예방해 준다. 다만 위의 소스는 무조건 자리수로만 자르는 것으로 (010|011|016|017|018|019)\\d(.+)\\d(.{4})  로 숫자타입여부를 체크해 주는 것도 좋다.


참고로 ORACLE에서는 REGEXP_REPLACE 함수를 이용하여 포맷을 적용할 수 있다.

SELECT REGEXP_REPLACE('01012345678', '(010|011|016|017|018|019)(.+)(.{4})','\1-\2=\3') AS TEL_NO
  FROM DUAL


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