Uda*_*ran 51 validation android phone-number
如何检查电话号码是否有效?长度达到13(包括+前面的角色).
我怎么做?
我试过这个:
String regexStr = "^[0-9]$";
String number=entered_number.getText().toString();
if(entered_number.getText().toString().length()<10 || number.length()>13 || number.matches(regexStr)==false ) {
Toast.makeText(MyDialog.this,"Please enter "+"\n"+" valid phone number",Toast.LENGTH_SHORT).show();
// am_checked=0;
}`
Run Code Online (Sandbox Code Playgroud)
我也试过这个:
public boolean isValidPhoneNumber(String number)
{
for (char c : number.toCharArray())
{
if (!VALID_CHARS.contains(c))
{
return false;
}
}
// All characters were valid
return true;
}
Run Code Online (Sandbox Code Playgroud)
两者都不起作用.
输入类型: + sign to be accepted and from 0-9 numbers and length b/w 10-13 and should not accept other characters
Sun*_*hoo 111
使用isGlobalPhoneNumber()方法PhoneNumberUtils检测号码是否是有效的电话号码.
System.out.println("....g1..."+PhoneNumberUtils.isGlobalPhoneNumber("+912012185234"));
System.out.println("....g2..."+PhoneNumberUtils.isGlobalPhoneNumber("120121852f4"));
Run Code Online (Sandbox Code Playgroud)
第一个print语句的结果为true,而second的结果为false,因为第二个电话号码包含f.
Spu*_*ley 37
根据您指定的规则:
长度为13,包括角色+面前.
(并在代码中加入最小长度为10)
你会想要一个看起来像这样的正则表达式:
^\+[0-9]{10,13}$
Run Code Online (Sandbox Code Playgroud)
使用正则表达式中编码的最小和最大长度,您可以从if()块中删除这些条件.
偏离主题:我建议10-13的范围对于国际电话号码字段来说太有限; 你几乎肯定会找到比这更长和更短的有效数字.我建议安全范围8到20.
[编辑] OP声明由于转义序列,上述正则表达式不起作用.不知道为什么,但另一种选择是:
^[+][0-9]{10,13}$
Run Code Online (Sandbox Code Playgroud)
[编辑2] OP现在补充说,+标志应该是可选的.在这种情况下,正则表达式后面需要一个问号+,所以上面的例子现在看起来像这样:
^[+]?[0-9]{10,13}$
Run Code Online (Sandbox Code Playgroud)
Dis*_*Dev 24
要验证Android中特定区域的电话号码,请使用Google的libPhoneNumber,并将以下代码作为示例:
public boolean isPhoneNumberValid(String phoneNumber, String countryCode)
{
//NOTE: This should probably be a member variable.
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
try
{
PhoneNumber numberProto = phoneUtil.parse(phoneNumber, countryCode);
return phoneUtil.isValidNumber(numberProto);
}
catch (NumberParseException e)
{
System.err.println("NumberParseException was thrown: " + e.toString());
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
小智 20
你可以使用内置的android Patterns:
public boolean validCellPhone(String number)
{
return android.util.Patterns.PHONE.matcher(number).matches();
}
Run Code Online (Sandbox Code Playgroud)
此模式用于搜索看似可能是任意文本中的电话号码的内容,而不是用于验证某些内容是否实际上是电话号码.它会遗漏很多合法的电话号码.
该模式符合以下条件:
- 可选地,+符号后面紧跟一个或多个数字.可能会出现空格,圆点或破折号.
- 可选地,括号中的数字组,由空格,点或短划线分隔.
- 以数字开头和结尾的字符串,包含数字,空格,点和/或短划线.
您还可以检查电话号码的验证
/**
* Validation of Phone Number
*/
public final static boolean isValidPhoneNumber(CharSequence target) {
if (target == null || target.length() < 6 || target.length() > 13) {
return false;
} else {
return android.util.Patterns.PHONE.matcher(target).matches();
}
}
Run Code Online (Sandbox Code Playgroud)
^\+?\(?[0-9]{1,3}\)? ?-?[0-9]{1,3} ?-?[0-9]{3,5} ?-?[0-9]{4}( ?-?[0-9]{3})?
Run Code Online (Sandbox Code Playgroud)
在这里检查您的案例:https ://regex101.com/r/DuYT9f/1