如何更新我的电话号码验证功能以仅验证美国电话号码?

问题描述 投票:-3回答:1

我有一个通用的电话号码验证功能,目前验证所有全球电话号码。我想更新它,以便它只验证美国的电话号码。但问题就在于,即使我将手机号码长度设置为10,它也会在10个字符处短暂停留。我的用户可能会输入类似空格或(例如:“(444)444 4444,如果我将字符数量限制为10,即使它是有效数字也不会有效。任何想法如何去做?这里是我的功能:

public static boolean isValidPhoneNumber(String phoneNumber) {
    return !TextUtils.isEmpty(phoneNumber) && android.util.Patterns.PHONE.matcher(phoneNumber).matches() && PhoneNumberUtils.;
}
android regex
1个回答
1
投票

我认为最好的方法是使用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();
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.