[swift] PhoneNumberKit을 사용하여 전화번호 입력시 설정한 형식만 허용하기

전화번호 입력 필드를 개발할 때, 특정한 형식을 사용자가 지켜야 한다면 PhoneNumberKit 라이브러리를 사용할 수 있습니다. 이 라이브러리는 Swift에서 전화번호를 쉽게 처리하고 유효성을 검사하는 기능을 제공합니다.

아래는 PhoneNumberKit을 사용하여 전화번호 입력시 설정한 형식만 허용하는 방법에 대한 예제 코드입니다.

import PhoneNumberKit

let phoneNumberKit = PhoneNumberKit()
let phoneNumberTextField = UITextField()

// 사용할 형식 설정
let allowedRegionCode = PhoneNumberKit.defaultRegionCode()
let allowedPhoneNumberFormat = PhoneNumberFormat.international

phoneNumberTextField.addTarget(self, action: #selector(validatePhoneNumber), for: .editingChanged)

@objc func validatePhoneNumber() {
    guard let phoneNumberText = phoneNumberTextField.text else {
        return
    }
    
    do {
        // 입력된 전화번호를 판단하기 위해 PhoneNumber 객체를 생성
        let phoneNumber = try phoneNumberKit.parse(phoneNumberText, withRegion: allowedRegionCode, ignoreType: true)
        
        // 사용할 형식에 맞는 문자열로 변환
        let formattedPhoneNumber = phoneNumberKit.format(phoneNumber, toType: allowedPhoneNumberFormat)
        
        // 전화번호 필드에 형식에 맞는 문자열 설정
        phoneNumberTextField.text = formattedPhoneNumber
        
    } catch {
        // 입력한 전화번호가 잘못된 형식일 때의 처리
        phoneNumberTextField.text = ""
    }
}

위의 예제 코드에서는 PhoneNumberKit을 사용하여 입력된 전화번호를 설정한 형식에 맞게 변환하는 기능을 구현하였습니다. 사용자가 전화번호를 입력할 때마다 validatePhoneNumber 메서드가 호출되어 입력한 전화번호의 유효성을 판단하고, 형식에 맞는 문자열로 변환하여 전화번호 필드에 설정합니다.

위의 예제 코드를 참고하여 PhoneNumberKit을 사용하여 전화번호 입력시 설정한 형식만 허용하는 로직을 구현해보세요. PhoneNumberKit은 휴대폰 번호나 국제 전화번호 등 다양한 형식을 처리할 수 있으므로, 유연한 전화번호 입력 기능을 구현할 수 있습니다.

참고 자료