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