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

Android 如何更新我的电话号码验证功能以仅验证美国电话号码?,android,regex,Android,Regex,我有一个通用的电话号码验证功能,目前可以验证所有的全球电话号码。我想更新它,以便它只验证我们的电话号码。但目前的问题是,即使我将我的电话号码长度设置为10,它也会在正好10个字符处停止。我的用户可能会输入空格或(,例如:“(444)44444444),如果我将字符数限制为10(即使是有效的数字),这将不起作用。有什么办法吗?以下是我的函数: public static boolean isValidPhoneNumber(String phoneNumber) { return !Tex

我有一个通用的电话号码验证功能,目前可以验证所有的全球电话号码。我想更新它,以便它只验证我们的电话号码。但目前的问题是,即使我将我的电话号码长度设置为10,它也会在正好10个字符处停止。我的用户可能会输入空格或(,例如:“(444)44444444),如果我将字符数限制为10(即使是有效的数字),这将不起作用。有什么办法吗?以下是我的函数:

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

我认为最好的方法是使用

您可以将其包括在项目中,如下所示:

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();
        }
    }

发布与更新现有代码的说明相关的代码。我建议使用
TextWatcher
进行此类操作。@Ravi我有。请检查我的question@Khojiakbar在这种情况下,textwatcher有什么帮助?@MarissaNicholas你可以看看这篇文章,制作你自己的
textwatcher
,它可以根据你的需要格式化文本