Яка мінімальна довжина дійсного міжнародного телефонного номера?


147

Мені потрібно підтвердити введення користувачем міжнародного номера телефону. Згідно з E.164 , максимальна довжина - 15 цифр, але мені не вдалося знайти жодної інформації про мінімум. Я вважаю лише цифри, без знака плюс або роздільники.


Гарне питання. Ви змогли знайти відповідь на це?
Shobhit Puri

1
Посилання показує, що мінімум - 7
LoranceChen

Відповіді:


122

Відповідно до різних джерел, я думаю, що мінімальна довжина у форматі E-164 залежить від країни до країни. Наприклад:

  • Для Ізраїлю : Мінімальна довжина номера телефону (крім коду країни) - 8 цифр. - Офіційне джерело (Код країни 972)
  • Для Швеції : мінімальна довжина числа (крім коду країни) - 7 цифр. - Офіційне джерело (код країни 46)

  • Для Соломонових островів його 5 для стаціонарних телефонів. - Джерело (код країни 677)

... і так далі. Отже, включаючи код країни, мінімальна довжина становить 9 цифр для Швеції та 11 для Ізраїлю та 8 для Соломонових островів.

Редагувати (чисте рішення) : Насправді, замість підтвердження міжнародного телефонного номера шляхом різних чеків, таких як довжина тощо, ви можете використовувати бібліотеку лібфонних номерів Google . Він може підтвердити номер телефону у форматі 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.


OMG, де було те посилання на Google тижнів тому! :-) Дякую!
AMM

Яа, я нещодавно оновив його. Вибачте за затримку. Сподіваюся, це допомагає.
Shobhit Puri

@ShobhitPuri Я думаю, що бібліотека Google також говорить, що "2222" - це дійсне число, тому, можливо, має бути мінімальна довжина для перевірки.
андроїд розробник

@androiddeveloper Я спробував ваш номер вище на libphonenumber.appspot.com. Але це сказало, що це не можлива кількість. З яким кодом країни ви спробували це число? Також є дві функції: одна, яка перевіряє, чи є її можливе число, і інша, яка перевіряє, чи є її дійсною. Я не думаю, що нам знадобиться перевірка довжини.
Shobhit Puri

Насправді, коли я спробую це з кодом країни Ізраїль, він виявляється дійсним. Можливо, ви можете перевірити типи чисел . getPhoneTypeздається, повертає УАН. Отже, це число 2222 - це UAN. Але Універсальні номери доступу також можуть бути і довшими. Технічно це здається дійсним числом. Тож ви можете перевірити тип телефонного номера або мінімальну довжину у вашої частини.
Shobhit Puri

15

EDIT 2015-06-27: Мінімум - це 8, включаючи код країни. Моє ліжко.

Оригінальна публікація

Мінімальний номер телефону, який я використовую, - 10 цифр. Міжнародні користувачі завжди повинні вводити свій код країни, і наскільки я знаю, немає країн, які мають менше десяти цифр, якщо рахувати код країни.

Більше інформації тут: https://en.wikipedia.org/wiki/Telephone_numbering_plan


12
На Соломонових островах може бути 8, включаючи код країни ( en.wikipedia.org/wiki/Telephone_numbers_in_the_Solomon_Islands )
Том Херд,

Дякую @TomHeard - переглянув мій пост!
Джеймон Холмгрен

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.