PHP的preg_match()通过满足特定条件的

PHP的preg_match()通过满足特定条件的

问题描述:

验证的国际电话号码,我想使用PHP的preg_match()函数以下规则来验证一个给定的国际电话号码: - 只允许数字,没有特殊字符和空格PHP的preg_match()通过满足特定条件的

  • 电话号码必须与 '00' 总是起始未+

  • 电话号码长度应不超过11​​个符号

到目前为止,我有这个,检查字符串的开头:

preg_match("~^00\d+$~", $_POST['phone']) 

,但如果我通过:00014568978945它会接受它是正确的,因为它会检查到了分钟“00”,但第三个“0”,使手机无效..

如何看起来像完整的preg_match()条件来检查上述要求?预先感谢您的时间!

+1

尝试'〜^ 00 [1-9] \ d {8,} $〜D':以两个'0'开始,然后是一个非零数字,然后是任意8个或更多数字。 –

+0

谢谢Wiktor,what \ d {8,}的意思是? – thecore7

+0

* 8或更多数字* –

我建议

~^00[1-9]\d{8,}$~D 

regex demo

详细

  • ^00 - 启动具有两个0 s,则
  • [1-9] - 非零位,然后
  • \d{8,} - 任何8首或更多个数字
  • $ - 字符串的结尾。

既然你验证,我还包括DPCRE_DOLLAR_ENDONLY修改,迫使$锚字符串的非常末总是匹配。

+1

谢谢Wiktor,似乎工作,我会在7分钟内接受它。 – thecore7