【问题标题】:regex for phone number starting with + (optional) and whitespace allowed以 + 开头的电话号码的正则表达式(可选)和允许空格
【发布时间】:2020-11-04 17:45:27
【问题描述】:

我正在尝试创建一个匹配任何值的正则表达式:

  • 可以以+开头,也可以不开头
  • 仅由数字组成
  • 在 + 之后(如果存在)和任何一组数字之间都允许有空格
  • 必须至少包含一个数字

我已经完成了以下正则表达式 ^[+]{0,1}[0-9 ]+$,它涵盖了前 3 个案例,但不包括最后一个案例,因为以下值 "+ "" " 与正则表达式匹配,这不是我想要的,因为它们包含没有号码。

【问题讨论】:

    标签: regex


    【解决方案1】:

    您可以使用可选的+ 开始模式,后跟可选的空格。然后首先匹配单个数字,然后匹配可选的空格或数字。

    ^[+]? *[0-9][0-9 ]*$
    

    Regex demo

    如果前导空格只能出现在有+: 的地方,则+ 和空格可以是可选的:

    ^(?:[+] *)?[0-9][0-9 ]*$
    

    Regex demo

    【讨论】:

    • hmm 我想也许 OP 不想在开头允许空格,除非后面跟着 +?
    • @Chase 在这种情况下,我添加了另一种模式以使 + 后跟 0+ 个空格可选。
    【解决方案2】:

    假设数字组由空格分隔:

    ^\+?( *\d+)+$
    

    注意事项:

    • 空格可选地引入一位或多位数字
    • {0,1} 替换为?
    • [0-9] 替换为\d

    【讨论】:

      猜你喜欢
      • 2011-08-27
      • 2015-03-29
      • 2012-09-22
      • 1970-01-01
      • 1970-01-01
      • 2021-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多