java - 手机正则表达式

标签 java regex validation jsf

我想使用 validator 来验证一些 JSF 的字段。我正在寻找一种模式来验证只接受这些条件的手机号码:

1- 开头可以包含一个可选的“+”(开头的“+”之后不应有空格)。

2- 该数字可能包含一个到多个字符,来自:

  • 数字字符[0-9]
  • 连字符 (-)
  • 空格
  • 点(.)

我正在使用这种模式 (^\\+)?[0-9\\s-\\.]* 但它不起作用,特别是我无法意识到这种情况"开头的'+'后面不应该有空格"

我的代码:

public Boolean isValid(String str) throws PatternSyntaxException {

        Pattern pattern = Pattern.compile("(^\\+)?[0-9\\s-\\.]*");
        Matcher matcher = pattern.matcher(telFax);
        boolean result = matcher.matches();

    return result;
}

最佳答案

让我们逐条阅读您的问题:

开头可以包含一个可选的“+”(开头的“+”之后不应有空格)。

^\+?\S

然后该号码可能包含一个到多个字符,来自:

  • 数字字符 [0-9]
  • 连字符 (-)
  • 空格
  • 点(.)

您最终的正则表达式应如下所示:

^\+?[0-9-\.][0-9\s-\.]*

Check the regex demo


您的 Java 代码可能如下所示:

public Boolean isValid(String telFax) {
    String regex = "^\\+?[0-9-\\.][0-9\\s-\\.]*";
    return Pattern.compile(regex).matcher(telFax).matches();
}

关于java - 手机正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51744445/

相关文章:

python - 使用正则表达式匹配替换索引值

javascript - 验证并显示表单数组 Angular 中特定表单 Controller 的错误消息

validation - 如何离线检查SSL证书链?

java - 计算大文本文件中指定单词的出现次数

java - 带有 tomcat 服务器的自签名证书的 TLS - 无法加载 PEM 客户端证书

c - C语言正则表达式匹配字符串(忽略大小写)

javascript - 帮助 javascript 正则表达式向某些字符添加反斜杠(如果尚不存在)

java - 有没有办法在 Java 中找出数据库游标是否打开?

java - Stream Collector.toMap 调用 toString 而不是值

javascript - BootstrapValidator 与 CKEditor