Проверка номера телефона Android - PullRequest
47 голосов
/ 15 июня 2011

Как я могу проверить, является ли номер телефона действительным или нет? Длина до 13 (включая символ + спереди).

Как мне это сделать?

Я пробовал это:

String regexStr = "^[0-9]$";

String number=entered_number.getText().toString();  

if(entered_number.getText().toString().length()<10 || number.length()>13 || number.matches(regexStr)==false  ) {
    Toast.makeText(MyDialog.this,"Please enter "+"\n"+" valid phone number",Toast.LENGTH_SHORT).show();
    // am_checked=0;
}`

И я тоже попробовал это:

public boolean isValidPhoneNumber(String number)
{
     for (char c : number.toCharArray())
     {
         if (!VALID_CHARS.contains(c))
         {
            return false;
         }
     }
     // All characters were valid
     return true;
}

Оба не работают.

Тип ввода: + sign to be accepted and from 0-9 numbers and length b/w 10-13 and should not accept other characters

Ответы [ 14 ]

0 голосов
/ 29 марта 2019

Я получил лучшее решение для проверки международного номера телефона и выбора кода страны ниже библиотека мне оправдана Лучшая библиотека для всех пользовательских интерфейсов и функций CountryCodePickerProject

0 голосов
/ 09 августа 2018

Вот как вы можете сделать это кратко в Котлине:

fun String.isPhoneNumber() =
            length in 4..10 && all { it.isDigit() }
0 голосов
/ 15 июля 2018
 String validNumber = "^[+]?[0-9]{8,15}$";

            if (number.matches(validNumber)) {
                Uri call = Uri.parse("tel:" + number);
                Intent intent = new Intent(Intent.ACTION_DIAL, call);
                if (intent.resolveActivity(getPackageManager()) != null) {
                    startActivity(intent);
                }
                return;
            } else {
                Toast.makeText(EditorActivity.this, "no phone number available", Toast.LENGTH_SHORT).show();
            }
0 голосов
/ 03 октября 2015

Вы не должны использовать регулярные выражения при проверке телефонных номеров.Проверьте этот JSON API - numverify.com - он бесплатен для nunver, если звонит в месяц, и способен проверить любой номер телефона.Кроме того, каждый запрос содержит местоположение, тип линии и информацию о носителе.

...