英国电话号码的正则表达式-所有可能选项的变体

时间:2018-10-08 13:46:53

标签: javascript regex

因此,在用户感到困惑之后,我需要为您可能想到的所有电话号码变型调整正则表达式。

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

^[+]?[-\s.]?[(]?[0-9]{3}[)]?[-\s.]?[0-9]{3}[-\s.]?[0-9]{4,6}$ 

它匹配得很好,但我希望能够将其与以下变体匹配:

  • +44 01726 400480

  • +44 1726 400480

  • +44 01726 400480

  • +44 1726 400 480

  • 01726 400480

  • 01726 400 480

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

2 个答案:

答案 0 :(得分:3)

您可以使用

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

https://regex101.com/r/DiJLVb/2

请注意,[0-9]简化为\d,并且其中仅包含一个字符的字符集简化为该字符。还请注意,如果您只想匹配文字空间,则使用文字空间比\s可靠一点-否则,其他空格字符(如换行符)也将被匹配,这可能是不希望的。

详细信息:

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

答案 1 :(得分:0)

您可以尝试以下https://www.regexpal.com/?fam=105302

^[+]?[-\s.]?[(]?[0-9]{2,3}?[)]?[-\s.]?([0-9]{3,4})?[-\s.]?[0-9]{3,6}[-\s.]?[0-9]{3,6}$