首页 > 解决方案 > PHP 电话正则表达式 - 不要超过 8 个数字的长度

问题描述

我正在尝试创建一个电话正则表达式。

$regexNumber = '#^[1-9][0-9]{8}$#';

至于现在是说第一个数字应该以1-9开头,而后面的数字应该在0-9之间。

当我想控制电话号码不超过8个数字的长度时,就会出现问题。我认为花括号可以解决我的问题,但我可能用错了。我希望阅读我的一篇文章可以启发我。

非常感谢您。

标签: phpregex

解决方案


利用

$regexNumber = '#^(?!0)\d{8}$#';

这很简单明了:8 位数字,但0开头没有。

请参阅正则表达式证明

解释

--------------------------------------------------------------------------------
  ^                        the beginning of the string
--------------------------------------------------------------------------------
  (?!                      look ahead to see if there is not:
--------------------------------------------------------------------------------
    0                        '0'
--------------------------------------------------------------------------------
  )                        end of look-ahead
--------------------------------------------------------------------------------
  \d{8}                    digits (0-9) (8 times)
--------------------------------------------------------------------------------
  $                        before an optional \n, and the end of the
                           string

推荐阅读