>

나는 새로운 신속한 개발자입니다. Swift 4.2 및 Xcode 10.1을 사용하고 있습니다.

국가 코드를 반환하기 위해 Mamelroy 's PhoneNumberKit을 사용하여 숫자를 구문 분석하고 있습니다. 구문 분석은 상당히 잘 작동합니다 (처음에는 조금 느리지 만). 그러나 미국에서 수신자 부담 전화 번호 (888) 또는 (866)가 지정되면 PhoneNumberKit은 앤티가 바부 다의 두 자리 국가 코드 인 AG를 반환합니다. AG의 NPA 접두사는 268이며 888 또는 866에 가깝지 않습니다.

AG의 결과를 처리하고 그것이 실제로 안티구아 또는 바부 다 번호인지 확인하기 위해 테스트 할 준비가되었지만 이것이 PhoneNumberKit에 문제가 있고 내가 잘못하고있는 것이 아님을 확인하고 싶습니다. 내 코드는 다음과 같습니다.

class ContactService {
static let phoneNumberKit = PhoneNumberKit()
static func getFlag(number:String) -> String {
    // Strip out all characters but +
    let basicNumber = number.filter("01234567890+".contains)
    // Get the country code and return it
    do {
        let phoneNumber = try phoneNumberKit.parse(basicNumber)
        let regionCode = phoneNumberKit.getRegionCode(of: phoneNumber)
        return regionCode!
    }
    catch {
        return "PhoneNumberKit was unable to get the region code."
    }
}
}

연락처에서 AG를 반환하는 3 개의 숫자는 다음과 같습니다.

1 (866) 814-9582, (866) 255-9679 및 (888) 888-7020

이 문제가 알려진 문제인지 또는 다른 수정 사항이 있으면 알려주십시오.


  • 답변 # 1

    여기서 GitHub를 검색했지만 https://github.com/marmelroy/PhoneNumberKit/issues/135에서 답을 찾았습니다. AG (미국 보호국)는 수신자 부담 전화 번호와 처음으로 일치하는 국가이므로 PhoneNumberKit은 AG를 반환합니다. 대신 사용자의 로캘을 반환하는 것이 좋습니다.

    미국으로 돌아 오는 것이 좋습니다.

    이 질문을 남겨두고 다른 사람들이이 예기치 않은 결과로 SO를 검색 할 수 있도록 여기에 답변합니다.

  • 이전 graph - 너비 우선 검색 대신 JAVA 프로그램에서 깊이 우선 검색 사용
  • 다음 python - 팬더 CSV로 저장할 때 NaN 값의 형식 변경