Как обновить функцию проверки телефонных номеров только для проверки телефонных номеров в США? - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть общая функция проверки телефонных номеров, которая в настоящее время проверяет все глобальные телефонные номера. Я хотел обновить его, чтобы он проверял только номера телефонов в США. Но проблема с этим в настоящее время, даже если я установлю длину своего телефонного номера на 10, он остановится ровно на 10 символов. мои пользователи могут ввести что-то вроде пробела или (например: «(444) 444 4444», которые не будут работать, если я ограничу число символов до 10, даже если это допустимое число. Есть идеи, как это сделать? моя функция:

public static boolean isValidPhoneNumber(String phoneNumber) {
    return !TextUtils.isEmpty(phoneNumber) && android.util.Patterns.PHONE.matcher(phoneNumber).matches() && PhoneNumberUtils.;
}

1 Ответ

1 голос
/ 05 апреля 2019

Я думаю, что лучшим способом было бы использовать https://github.com/MichaelRocks/libphonenumber-android.

Вы можете включить его в свой проект следующим образом:

repositories {
  jcenter()
}

dependencies {
  implementation 'io.michaelrocks:libphonenumber-android:8.10.7'
} 

А затем используйте его как:

public void validateNumber(View view) {
        PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.createInstance(this);
        Phonenumber.PhoneNumber phoneNumber = null;
        try {

            phoneNumber = phoneNumberUtil.parse("(541) 754-3010"/*replace with your number*/, "US");
            boolean isValid = phoneNumberUtil.isValidNumber(phoneNumber);
            Toast.makeText(this, "" + isValid, Toast.LENGTH_SHORT).show();
        } catch (NumberParseException e) {
            e.printStackTrace();
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...