Как мы можем проверить длину номера мобильного телефона по СТРАНЕ? (Зная, что код страны может быть или не быть частью номера)
Длина может варьироваться в зависимости от страны, а это означает, что должен быть диапазон длины или средство проверки шаблона.
Пример:
Примечание. Любая идея, где я могу найти диапазон длин мобильных номеров каждой страны.
Спасибо!
Привет @DarShan Мне нужно проверить любой номер мобильного телефона, если его длина находится в диапазоне для каждой страны. Итак, мне может понадобиться список, содержащий все страны с ожидаемой длиной калида. P.S.: Я не могу использовать библиотеки из соображений безопасности.
Ссылка перенаправляет вас на полный пример на SO, это не библиотека.
Учитывая номер мобильного телефона и код страны, вы можете использовать libphonenumeer, библиотеку Google для проверки телефонных номеров; он проверяет длину номера и ловит исключение NumberParseException
, если это не правильный номер.
Это их образец того, как его использовать.
String swissNumberStr = "044 668 18 00";
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
try {
PhoneNumber swissNumberProto = phoneUtil.parse(swissNumberStr, "CH");
} catch (NumberParseException e) {
System.err.println("NumberParseException was thrown: " + e.toString());
}
Здравствуйте, @Zain, так что, например, если ввод swissNumberStr = "044 668 1", возникает исключение? Я попытался разобрать более короткий (недопустимый) номер, и исключение не было выдано. Мне нужен phoneUtil.parse("044 688 1","CH"); бросить исключение. Спасибо!
Добавление к ответу @Zain.
String swissNumberStr = "044 668 18 00";
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
try {
PhoneNumber swissNumberProto = phoneUtil.parse(swissNumberStr, "CH");
// This will check if the phone number is real and its length is valid.
boolean isPossible = phoneUtil.isPossibleNumber(swissNumberProto);
} catch (NumberParseException e) {
System.err.println("NumberParseException was thrown: " + e.toString());
}
Котлин ответ
val swissNumberStr = "044 668 18 00"
val phoneUtil = PhoneNumberUtil.getInstance()
try {
val swissNumberPrototype = phoneUtil.parse(swissNumberStr, "CH")
val isValid = phoneUtil.isValidNumber(swissNumberPrototype)
if (isValid) {
// do something
} else {
// do something else
}
} catch (e: NumberParseException) {
System.err.println("NumberParseException was thrown: $e")
}
Вы проверили это? stackoverflow.com/questions/37765271/…