0

我尝试将电话号码与 Android 中提供的正则表达式Patterns.Phone匹配,这匹配了很多不是电话号码的东西。我也尝试过使用:

(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?

但是,我发现所有输入的测试都没有成功。我想使用正则表达式验证以下输入:

  67450450
  +9144-27444444
  27444444 
  27470570
  +12142261347
  +61406366180
  0891 2577456
  2577456
  +91 9550461668
  9550461668
  03-1234567  
  1860 425 3330 

基本上这里支持任何 nymber 格式:WTND

4

2 回答 2

1
you can use the following code to check phone #:

    private boolean validPhone(String phone) {
        Pattern pattern = Patterns.PHONE;
        return pattern.matcher(phone).matches();
    }



if(validPhone("67450450")){
  Toast.makeText(this,"The phone number is valid");
}
 else
{
  Toast.makeText(this,"The phone number is not valid");
}
于 2013-11-12T07:24:36.497 回答
0

这不是干净/高效的,只是放在一起以匹配您的示例数据:

\b\d{7,10}|\+\d{4}-\d{8}|\+\d{11}|\d{4}\s\d{7}|\+\d{2}\s\d{10}|\d{2}-\d{7}|\d{4}\s\d{3}\s\d{4}\b
于 2013-11-12T13:26:50.837 回答