[swift] PhoneNumberKit을 사용하여 전화번호 입력시 정규식 패턴에 맞추기

전화번호 형식을 입력 받을 때 정규식을 사용하여 입력값을 유효성 검사하는 것은 매우 번거로운 작업입니다. 이를 간편하게 처리해주는 라이브러리인 PhoneNumberKit을 소개하고, 실제로 이를 사용하여 전화번호 입력시 정규식 패턴에 맞추는 방법을 알아보겠습니다.

PhoneNumberKit이란?

PhoneNumberKit은 Swift로 작성된 전화번호 유효성 검사와 서식화를 가능하게 해주는 라이브러리입니다. 이 라이브러리를 사용하면 전화번호를 국가별 서식에 맞춰 표시하거나, 유효성을 검사할 수 있습니다.

PhoneNumberKit 설치하기

PhoneNumberKit은 CocoaPods를 통해 설치할 수 있습니다. CocoaPods가 설치되어 있지 않다면 먼저 설치해주세요.

$ gem install cocoapods

Podfile에 PhoneNumberKit을 추가하고, 설치해줍니다.

pod 'PhoneNumberKit'

터미널에서 다음 명령어를 실행하여 pod을 설치합니다.

$ pod install

전화번호 입력시 정규식 패턴에 맞추기

PhoneNumberKit을 사용하여 전화번호 입력시 정규식 패턴에 맞추는 방법을 알아보겠습니다. 먼저 PhoneNumberKit을 import 해줍니다.

import PhoneNumberKit

다음으로, PhoneNumberKit 인스턴스를 생성합니다.

let phoneNumberKit = PhoneNumberKit()

이제 사용자로부터 전화번호를 입력받은 후, 정규식 패턴에 맞게 포맷팅하는 메소드를 작성합니다.

func formatPhoneNumber(phoneNumber: String) -> String {
    var formattedNumber = ""
    
    do {
        let parsedNumber = try phoneNumberKit.parse(phoneNumber)
        formattedNumber = phoneNumberKit.format(parsedNumber, toType: .e164)
    } catch {
        print("Invalid phone number")
    }
    
    return formattedNumber
}

해당 메소드는 파라미터로 전화번호를 받아 PhoneNumberKit을 사용하여 유효성을 검사한 후, E.164 형식으로 전화번호를 포맷팅합니다. 만약 유효하지 않은 전화번호라면 “Invalid phone number”를 출력하고 빈 문자열을 반환합니다.

let phoneNumber = "+821012345678"
let formattedPhoneNumber = formatPhoneNumber(phoneNumber: phoneNumber)
print(formattedPhoneNumber)
// 출력 결과: "+821012345678"

결론

PhoneNumberKit은 전화번호 입력시 정규식 패턴에 맞춰 유효성을 검사하고 포맷팅하는 작업을 간편하게 해주는 유용한 라이브러리입니다. 위의 예제를 참고하여 PhoneNumberKit을 사용하여 전화번호 형식을 검사하고, 정규식 패턴에 맞게 포맷팅할 수 있습니다.

참고 자료