Android PhoneNumberUtils isWellFormedSmsAddress
Android PhoneNumberUtils isWellFormedSmsAddress
什么是格式正确的短信地址?
我在我的代码中这样做:
if (StringUtils.isNotBlank(mPhone) && !PhoneNumberUtils.isWellFormedSmsAddress(mPhone)) {
AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle(getString(R.string.cellphone_error));
alertDialog.setMessage(getString(R.string.cellphone_error_hint));
alertDialog.show();
return;
}
但是,我似乎无法输入任何一组数字来激活此代码。出于某种原因,一切似乎都符合格式正确的短信地址。这个错误检查是如何工作的?
我应该只使用 isGlobalPhoneNumber
吗?
在查看其中任何一种方法后,您可能希望使用自己的 RegEx 来验证数字,例如根据您的要求使用 here 的数字。
原因是 PhoneNumberUtils.isWellFormedSmsAddress(...)
使用 PhoneNumberUtils.extractNetworkPortion(...)
提取传入 String
的网络部分,并基本上检查该网络部分是否具有可拨数字。
问题是 PhoneNumberUtils.extractNetworkPortion(...)
删除了大多数非数字,因此 +18fvg12
变成了 +1812
并且仍然通过。
PhoneNumberUtils.isGlobalPhoneNumber (...) 显得更有用而且
确保 phone 数字与 RegEx [\+]?[0-9.-]+
.
匹配
虽然 +-----598--
仍然作为示例,但这仍然可能不是理想的。
什么是格式正确的短信地址?
我在我的代码中这样做:
if (StringUtils.isNotBlank(mPhone) && !PhoneNumberUtils.isWellFormedSmsAddress(mPhone)) {
AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle(getString(R.string.cellphone_error));
alertDialog.setMessage(getString(R.string.cellphone_error_hint));
alertDialog.show();
return;
}
但是,我似乎无法输入任何一组数字来激活此代码。出于某种原因,一切似乎都符合格式正确的短信地址。这个错误检查是如何工作的?
我应该只使用 isGlobalPhoneNumber
吗?
在查看其中任何一种方法后,您可能希望使用自己的 RegEx 来验证数字,例如根据您的要求使用 here 的数字。
原因是 PhoneNumberUtils.isWellFormedSmsAddress(...)
使用 PhoneNumberUtils.extractNetworkPortion(...)
提取传入 String
的网络部分,并基本上检查该网络部分是否具有可拨数字。
问题是 PhoneNumberUtils.extractNetworkPortion(...)
删除了大多数非数字,因此 +18fvg12
变成了 +1812
并且仍然通过。
PhoneNumberUtils.isGlobalPhoneNumber (...) 显得更有用而且
确保 phone 数字与 RegEx [\+]?[0-9.-]+
.
虽然 +-----598--
仍然作为示例,但这仍然可能不是理想的。