Мені потрібно підтвердити введення користувачем міжнародного номера телефону. Згідно з E.164 , максимальна довжина - 15 цифр, але мені не вдалося знайти жодної інформації про мінімум. Я вважаю лише цифри, без знака плюс або роздільники.
Мені потрібно підтвердити введення користувачем міжнародного номера телефону. Згідно з E.164 , максимальна довжина - 15 цифр, але мені не вдалося знайти жодної інформації про мінімум. Я вважаю лише цифри, без знака плюс або роздільники.
Відповіді:
Відповідно до різних джерел, я думаю, що мінімальна довжина у форматі E-164 залежить від країни до країни. Наприклад:
Для Швеції : мінімальна довжина числа (крім коду країни) - 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
.
getPhoneType
здається, повертає УАН. Отже, це число 2222 - це UAN. Але Універсальні номери доступу також можуть бути і довшими. Технічно це здається дійсним числом. Тож ви можете перевірити тип телефонного номера або мінімальну довжину у вашої частини.
EDIT 2015-06-27: Мінімум - це 8, включаючи код країни. Моє ліжко.
Оригінальна публікація
Мінімальний номер телефону, який я використовую, - 10 цифр. Міжнародні користувачі завжди повинні вводити свій код країни, і наскільки я знаю, немає країн, які мають менше десяти цифр, якщо рахувати код країни.
Більше інформації тут: https://en.wikipedia.org/wiki/Telephone_numbering_plan
Мінімальна довжина - 4 для Святої Єлени (Формат: +290 XXXX) та Ніуе (Формат: +683 XXXX).