Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 英国电话号码的正则表达式-所有合理选项的变体_Javascript_Regex - Fatal编程技术网

Javascript 英国电话号码的正则表达式-所有合理选项的变体

Javascript 英国电话号码的正则表达式-所有合理选项的变体,javascript,regex,Javascript,Regex,所以,在一些用户困惑之后,我需要为所有你能想到的电话号码变化调整一个正则表达式 我目前有以下正则表达式: ^[+]?[-\s.]?[(]?[0-9]{3}[)]?[-\s.]?[0-9]{3}[-\s.]?[0-9]{4,6}$ 它匹配得相当好,但我希望能够将其与以下变体匹配: +4401726400480 +441726400480 +4401726400480 +441726400480 01726400480 01726400480 N.B.我知道之前也有人问过类似的问题,但我觉得

所以,在一些用户困惑之后,我需要为所有你能想到的电话号码变化调整一个正则表达式

我目前有以下正则表达式:

^[+]?[-\s.]?[(]?[0-9]{3}[)]?[-\s.]?[0-9]{3}[-\s.]?[0-9]{4,6}$ 
它匹配得相当好,但我希望能够将其与以下变体匹配:

  • +4401726400480

  • +441726400480

  • +4401726400480

  • +441726400480

  • 01726400480

  • 01726400480

N.B.我知道之前也有人问过类似的问题,但我觉得添加上述变体对于社区来说是完美的。

您可以使用

^\+?(?:[- .]?\d{2})?[- .]?\d{4,5}[- .]?\d{3}[- .]?\d{3}$

请注意,
[0-9]
简化为
\d
,其中只有一个字符的字符集简化为该字符。另外请注意,如果只想匹配文字空间,则使用文字空间比使用
\s
更可靠—否则,其他空白字符(如换行符)也会匹配,这可能是不可取的

详情:

  • \+?
    -可选加号
  • (?:[-.]?\d{2})
    -可选前导两位数字
  • [-.]?\d{4,5}
    -四位或五位数字
  • [-.]?\d{3}[-.]?\d{3}
    -六位数字,可能由字符分隔
您可以使用

^\+?(?:[- .]?\d{2})?[- .]?\d{4,5}[- .]?\d{3}[- .]?\d{3}$

请注意,
[0-9]
简化为
\d
,其中只有一个字符的字符集简化为该字符。另外请注意,如果只想匹配文字空间,则使用文字空间比使用
\s
更可靠—否则,其他空白字符(如换行符)也会匹配,这可能是不可取的

详情:

  • \+?
    -可选加号
  • (?:[-.]?\d{2})
    -可选前导两位数字
  • [-.]?\d{4,5}
    -四位或五位数字
  • [-.]?\d{3}[-.]?\d{3}
    -六位数字,可能由字符分隔

    • 您可以尝试以下方法


      ^[+]?[-\s.]?[(]?[0-9]{2,3}?[)]?[-\s.]([0-9]{3,4})?[-\s.]?[0-9]{3,6}[-\s.]?[0-9]{3,6}$
      您可以尝试以下方法


      ^[+]?[-\s.]?[(]?[0-9]{2,3}?[)]?[-\s.]([0-9]{3,4})?[-\s.]?[0-9]{3,6}.[-\s.][0-9]{3,6}$
      @AndrewMorton没有听起来好战,我不认为这是重复的,因为我在其他问题上看到的比赛并不涵盖所有没有听起来好战的边远案件。@bruent,我不认为这是重复的,因为我在其他问题上看到的比赛并没有涵盖所有边远的案件。@AndrewMorton没有听起来好战,我不认为这是重复的,因为我在其他问题上看到的比赛并没有涵盖所有边远的案件。@Cerburs没有听起来好战,我不认为这是重复的,因为我在其他问题上看到的匹配并没有涵盖所有的外围情况。像一个符咒一样工作-感谢上帝为你们regex专家!)工作起来很有魅力——感谢老天爷为你们这些正则表达式专家