Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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
Php 我的正则表达式用于测试电话问题_Php_Regex - Fatal编程技术网

Php 我的正则表达式用于测试电话问题

Php 我的正则表达式用于测试电话问题,php,regex,Php,Regex,我想验证这些电话号码格式: 517123123 +48517123123 +48 517 123 123 (48)517123123 (48)517 123 123 517-123-123 48 517-123-123 48/517-123-123 48 517 123 123 我写了这个正则表达式: (\+?)+((\([0-9]+){2,2})|([0-9]+){2,2})+(\/?)+(\s?)(([0-9]+){9,9}{124;([0-9]+){3,3}(\s}-{1,1}([

我想验证这些电话号码格式:

517123123
+48517123123
+48 517 123 123

(48)517123123
(48)517 123 123

517-123-123
48 517-123-123
48/517-123-123

48 517 123 123
我写了这个正则表达式:
(\+?)+((\([0-9]+){2,2})|([0-9]+){2,2})+(\/?)+(\s?)(([0-9]+){9,9}{124;([0-9]+){3,3}(\s}-{1,1}([0-9]+){3,3})代码{3,3}


问题是它使得像
8978978979878978967这样的大数字有效。我的错误在哪里?

看看正则表达式的末尾,我看到您似乎在多个地方做了一些事情

([0-9]+){3,3}
+
至少重复[0-9]一次,这使得
1111111111
完全匹配。然后将其限制为这些匹配中的3个,这仍然是一个很长的数字。
如果您只需要3位数字,请删除
+

查看正则表达式的末尾,我看到您似乎在多个位置执行某些操作

([0-9]+){3,3}
+
至少重复[0-9]一次,这使得
1111111111
完全匹配。然后将其限制为这些匹配中的3个,这仍然是一个很长的数字。
如果您只需要3位数字,请删除
+

,此时我看不到您的正则表达式在做什么,因为里面有太多多余的东西

  • 你的团队太多了

  • 是否要重复可选字符

    e、 g:

    • (\+?)+
      ,你不需要一个团队,你也不想重复,所以
      \+?
      就是你想要的

    • (\s?+
      ,是否要说“0个或更多空白”?那么您需要的就是
      \s*

  • 当您编写例如
    {9,9}
    时,您可以删除一个数字,
    {9}
    是相同的

  • 您正在嵌套量词,这是允许使用太多字符的地方。你有多个地方,在那里你做
    ([0-9]+){9,9}
    ,这意味着一个或多个数字并重复9次


  • 现在我看不出你的正则表达式在做什么,里面有太多多余的东西

  • 你的团队太多了

  • 是否要重复可选字符

    e、 g:

    • (\+?)+
      ,你不需要一个团队,你也不想重复,所以
      \+?
      就是你想要的

    • (\s?+
      ,是否要说“0个或更多空白”?那么您需要的就是
      \s*

  • 当您编写例如
    {9,9}
    时,您可以删除一个数字,
    {9}
    是相同的

  • 您正在嵌套量词,这是允许使用太多字符的地方。你有多个地方,在那里你做
    ([0-9]+){9,9}
    ,这意味着一个或多个数字并重复9次


  • 也许你迷路了。。。。但是,请使用我的正则表达式(\+?(\(\d{2})\(\d{2})\(\d{2}[/]))?((\d{3}\d{3}\d{3})\{124;(\ d{3}-\d{3}-\d{3}-\d{3})$$
    您可能会迷失方向。。。。但是,使用我的正则表达式(\+?(\(\d{2}\)(\d{2}-)(\d{2}[/]))((\d{3}\d{3}\d{3}-)|(\d{3}-\d{3}-\d}-\d}-\d{3}-\d}-\d}$$

    来验证电话号码,为什么不删除所有非数字字符,而不删除所有非数字字符?