[swift] PhoneNumberKit을 사용하여 전화번호 정규식 생성하기

전화번호 형식을 검증하고 처리해야하는 경우가 있는데, Swift에서는 PhoneNumberKit 라이브러리를 사용하여 간편하게 전화번호를 다룰 수 있습니다. 이번 글에서는 PhoneNumberKit을 사용하여 전화번호의 유효성을 검사하고, 정규식을 생성하는 방법에 대해 알아보겠습니다.

PhoneNumberKit 라이브러리 설치하기

PhoneNumberKit은 CocoaPods와 Carthage를 통해 설치할 수 있습니다. CocoaPods를 사용하는 경우, Podfile에 다음과 같이 PhoneNumberKit을 추가합니다.

pod 'PhoneNumberKit'

Carthage를 사용하는 경우, Cartfile에 다음과 같이 PhoneNumberKit을 추가합니다.

github "marmelroy/PhoneNumberKit"

그리고 프로젝트의 루트 디렉토리에서 다음 명령어를 실행하여 라이브러리를 설치합니다.

$ carthage update

PhoneNumberKit을 사용하기 위해 import 문을 추가합니다.

import PhoneNumberKit

전화번호 유효성 검사하기

PhoneNumberKit은 String을 PhoneNumber 타입으로 변환하여 유효성을 검사할 수 있습니다. PhoneNumberKit의 인스턴스를 생성한 후, 문자열을 PhoneNumber 타입으로 변환하고 유효성을 검사하는 예제를 살펴보겠습니다.

import PhoneNumberKit

let phoneNumberKit = PhoneNumberKit()
let phoneNumberString = "+821012345678"

do {
    let phoneNumber = try phoneNumberKit.parse(phoneNumberString)
    print("\(phoneNumber) is a valid phone number")
} catch {
    print("Invalid phone number: \(error.localizedDescription)")
}

위의 예제에서는 +821012345678이라는 전화번호를 유효성 검사하고 있습니다. parse 메서드를 사용하여 문자열을 PhoneNumber 타입으로 변환하고, 유효성 검사를 수행합니다. 유효한 전화번호인 경우 해당 전화번호를 출력하고, 유효하지 않은 경우 에러 메시지를 출력합니다.

전화번호 정규식 생성하기

PhoneNumberKit은 PhoneNumber 타입 객체를 사용하여 전화번호의 정규식을 생성할 수 있습니다. metadata 속성에는 PhoneNumber의 국가 정보가 포함되어 있어, 해당 정보를 사용하여 전화번호의 정규식을 생성할 수 있습니다.

import PhoneNumberKit

let phoneNumberKit = PhoneNumberKit()

if let metadata = phoneNumberKit.metadata(for: .KR) {
    let nationalNumberPattern = metadata.generalDesc?.nationalNumberPattern ?? ""
    let regularExpression = try? NSRegularExpression(pattern: nationalNumberPattern, options: [])
    print("Regular expression for Korean phone number: \(regularExpression?.pattern ?? "")")
} else {
    print("Cannot find metadata for Korea")
}

위의 예제에서는 PhoneNumberKit에서 .KR을 사용하여 대한민국의 국가 정보를 가져왔습니다. 가져온 국가 정보에서 generalDesc?.nationalNumberPattern을 사용하여 대한민국 전화번호의 정규식을 생성하고 있습니다. 생성된 정규식은 regularExpression?.pattern을 통해 확인할 수 있습니다.

결론

PhoneNumberKit을 사용하면 Swift에서 전화번호를 처리하고 유효성을 검사하는 것이 훨씬 간편해집니다. PhoneNumberKit을 사용하여 전화번호의 유효성을 검사하고, 정규식을 생성하는 방법에 대해 알아보았습니다. 이를 활용하여 전화번호 관련 기능을 개발할 때 유용하게 활용해보세요!

참고자료