如何写电话号码正则表达式

时间:2013-11-28 12:35:14

标签: android regex

正在开发一个移动应用程序,用户可以通过转发电话号码注册用户。电话号码必须以“07”开头。以下是我的代码

public boolean isPhoneNumber(String s) {
    String pattern = "[0-9]";
    if (s.matches(pattern)) {
        return true;
    }
    return false;
}

关于我如何从这里开始的任何想法

4 个答案:

答案 0 :(得分:1)

您的当前表达式将允许任何字符串通过,只要它包含09之间的数字。

相反,您需要以下表达式:

^07
  • ^:匹配字符串start-of-string。
  • 0:匹配文字0
  • 7:匹配文字7

在Java中:

public boolean isPhoneNumber(String s) {
   String pattern = "^07";
   if (s.matches(pattern)) {
       return true;
   }
   return false;
}

答案 1 :(得分:1)

使用\ d检查字符是否为数字。对于前者\ d {6}将检查有6个后续数字。 这里是您要查找的代码:

public static boolean isPhoneNumber(String s) {
    String pattern = "^07\\d{6}"; 
    if (s.matches(pattern)) {
        return true;
    }
    return false;
}

检查一下以了解有关正则表达式的更多信息:http://www.vogella.com/articles/JavaRegularExpressions/article.html

答案 2 :(得分:0)

你可以试试这个:^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$

答案 3 :(得分:0)

例如,它是一个10位数的手机号码,您可以在下面尝试

       public static boolean isPhoneNumber(String s) {
       String pattern = "^[0-9]{10}"; 
       if (s.matches(pattern)) {
        return true;
        }
        return false;
       }