为了账号安全,请及时绑定邮箱和手机立即绑定

手机正则表达式

手机正则表达式

侃侃尔雅 2021-06-30 12:27:27
我想使用验证器验证一些 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;}
查看完整描述

2 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

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

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

^\+?\S

然后,该数字可能包含以下一到几个字符:

  • 数字字符 [0-9]

  • 连字符 (-)

  • 空间

  • 观点 (。)


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

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

检查正则表达式演示


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

public Boolean isValid(String telFax) {

    String regex = "^\\+?[0-9-\\.][0-9\\s-\\.]*";

    return Pattern.compile(regex).matcher(telFax).matches();

}


查看完整回答
反对 回复 2021-07-07
?
千巷猫影

TA贡献1829条经验 获得超7个赞

YCF_L的答案很完美,我只想补充一点,根据问题中验证器的描述(尤其是第2点),没有什么可以阻止电话号码以空格开头。

所以正则表达式应该是:

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


查看完整回答
反对 回复 2021-07-07
  • 2 回答
  • 0 关注
  • 325 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信