[validation] 유효한 국제 전화 번호의 최소 길이는 얼마입니까?

국제 전화 번호의 사용자 입력을 확인해야합니다. E.164 에 따르면 최대 길이는 15 자리이지만 최소값에 대한 정보를 찾을 수 없습니다. 더하기 부호 또는 구분 기호가없는 숫자 만 고려합니다.



답변

다른 출처에 따르면 E-164 형식의 최소 길이는 국가마다 다릅니다. 예를 들어 :

  • 이스라엘의 경우 : 국가 번호를 제외한 최소 전화 번호 길이는 8 자리입니다. – 공식 출처
    (국가 코드 972)
  • 스웨덴의 경우 : 국가 번호를 제외한 최소 숫자 길이는 7 자리입니다. – 공식 출처 (국가 코드 46)

  • 솔로몬 제도 의 경우 유선 전화의 경우 5 개입니다. – 출처 (국가 코드 677)

… 등등. 국가 코드를 포함하여 최소 길이는 스웨덴의 경우 9 자리, 이스라엘의 경우 11 자리, 솔로몬 제도의 경우 8 자리입니다.

편집 (청소 솔루션) : 실제로 길이 등의 다른 확인을 통해 국제 전화 번호를 확인하는 대신 Google의 libphonenumber 라이브러리를 사용할 수 있습니다 . E164 형식의 전화 번호를 직접 확인할 수 있습니다. 그것은 모든 것을 고려할 것이고 숫자가 유효한 E164 형식이라면 국가를 제공 할 필요조차 없습니다. 꽤 좋습니다! 예를 들면 :

String phoneNumberE164Format = "+14167129018"
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
try {
    PhoneNumber phoneNumberProto = phoneUtil.parse(phoneNumberE164Format, null);
    boolean isValid = phoneUtil.isValidNumber(phoneNumberProto); // returns true if valid
    if (isValid) {
        // Actions to perform if the number is valid
    } else {
        // Do necessary actions if its not valid
    }
} catch (NumberParseException e) {
    System.err.println("NumberParseException was thrown: " + e.toString());
}

숫자를 확인하는 국가를 알고 있으면 E164 형식도 필요 없으며 .parse전달하는 대신 국가를 기능으로 지정할 수 있습니다 null.


답변

2015-06-27 편집 : 국가 코드를 포함하여 최소값은 실제로 8입니다. 내 잘못이야.

원본 게시물

사용하는 최소 전화 번호는 10 자리입니다. 국제 사용자는 항상 국가 코드를 입력해야하며 국가 코드를 세면 10 자리 미만의 국가가 없다는 것을 알고 있습니다.

자세한 정보는 여기 : https://en.wikipedia.org/wiki/Telephone_numbering_plan


답변

Saint Helena (형식 : +290 XXXX) 및 Niue (형식 : +683 XXXX)의 최소 길이는 4입니다.


답변