Swift 코드로 휴대폰 번호나 지역 전화번호를 '010-1234-5678' 또는 '02-1234-5678' 형식으로 자동 변환하는 함수를 구현하는 방법을 알아봅니다. 복잡한 정규식 없이도 깔끔하게 전화번호 형식을 정리할 수 있습니다.
Xcode에서 Swift 전화번호 형식 자동 변환 함수 만들기
개발 중 사용자 입력이나 API 응답으로 받은 전화번호 문자열을 일관된 형식으로 통일해야 할 때가 있습니다. 특히 휴대폰 번호(010-xxxx-xxxx)나 지역 번호가 포함된 전화번호(02-xxxx-xxxx, 054-xxx-xxxx 등)를 다룰 때, 이를 'XXX-XXXX-XXXX' 또는 'XX-XXXX-XXXX' 형태로 맞춰주는 함수가 유용합니다. Swift의 정규 표현식 기능을 활용하면 이러한 형식 변환을 효율적으로 처리할 수 있습니다. 이 함수는 입력된 전화번호가 유효한 패턴인지 확인하고, 숫자만 있는 경우에도 적절한 하이픈(-)을 삽입하여 반환합니다. 예를 들어, '01012345678'은 '010-1234-5678'로, '0212345678'은 '02-1234-5678'로 변환됩니다. 실제 개발 환경에서 이 함수를 사용하면 사용자 경험을 개선하고 데이터 일관성을 유지하는 데 도움이 됩니다.
정규 표현식을 활용한 전화번호 패턴 검증 및 포맷팅
관련 글
Swift에서 전화번호 형식을 자동으로 맞춰주는 `getCallNumFormat` 함수는 정규 표현식(Regular Expression)을 핵심적으로 사용합니다. 먼저, 입력된 문자열이 이미 '010-1234-5678' 또는 '02-1234-5678'과 같은 표준 전화번호 패턴과 일치하는지 확인합니다. 만약 일치하지 않는다면, 입력 문자열에서 특수문자(!@#$%^&*().,?:;/_{}+=-)와 공백을 모두 제거하여 숫자만 남깁니다. 그 후, 남은 숫자의 개수에 따라 형식을 적용합니다. 11자리 숫자는 '010-XXXX-XXXX' 형식으로, 10자리 숫자는 지역 번호(서울 02, 기타 지역 03~06 시작)에 따라 'XX-XXXX-XXXX' 또는 'XXX-XXX-XXXX' 형식으로 변환합니다. 이 과정에서 숫자의 개수가 맞지 않으면 오류 로그를 기록하여 디버깅을 돕습니다. 이 함수는 다양한 형태의 전화번호 입력을 안정적으로 처리하며, 개발자가 전화번호 포맷팅 로직을 직접 구현하는 수고를 덜어줍니다. 개인 정보 보호 및 데이터 정제 과정에서 유용하게 활용될 수 있습니다. 다만, 모든 국가의 전화번호 형식을 지원하지는 않으므로, 특정 국가의 번호만 처리하는 경우 해당 국가의 표준에 맞게 패턴을 수정해야 합니다.
더 자세한 코드와 활용법은 원본 글에서 확인하세요.





