Мне нужно проверить ввод данных международного номера телефона. Согласно E.164 максимальная длина составляет 15 цифр, но я не смог найти никакой информации о минимуме. Я считаю только цифры, нет плюса или разделителей.
Какова минимальная длина действительного международного номера телефона?
Ответ 1
Как и в разных источниках, я думаю, что минимальная длина в формате 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
.
Ответ 2
РЕДАКТИРОВАТЬ 2015-06-27: минимум - это 8, включая код страны. Мой плохой.
Оригинальный пост
Минимальный номер телефона, который я использую, составляет 10 цифр. Международные пользователи всегда должны указывать свой код страны, и, насколько я знаю, нет стран с менее чем десятью цифрами, если вы считаете код страны.
Дополнительная информация здесь: https://en.wikipedia.org/wiki/Telephone_numbering_plan
Ответ 3
Минимальная длина - 4 для Святой Елены (формат: +290 XXXX) и Ниуэ (формат: +683 XXXX).