PHP的preg_match()通过满足特定条件的
问题描述:
验证的国际电话号码,我想使用PHP的preg_match()函数以下规则来验证一个给定的国际电话号码: - 只允许数字,没有特殊字符和空格PHP的preg_match()通过满足特定条件的
电话号码必须与 '00' 总是起始未+
电话号码长度应不超过11个符号
到目前为止,我有这个,检查字符串的开头:
preg_match("~^00\d+$~", $_POST['phone'])
,但如果我通过:00014568978945它会接受它是正确的,因为它会检查到了分钟“00”,但第三个“0”,使手机无效..
如何看起来像完整的preg_match()条件来检查上述要求?预先感谢您的时间!
答
我建议
~^00[1-9]\d{8,}$~D
详细:
-
^00
- 启动具有两个0
s,则 -
[1-9]
- 非零位,然后 -
\d{8,}
- 任何8首或更多个数字 -
$
- 字符串的结尾。
既然你验证,我还包括D
PCRE_DOLLAR_ENDONLY修改,迫使$
锚字符串的非常末总是匹配。
+1
谢谢Wiktor,似乎工作,我会在7分钟内接受它。 – thecore7
尝试'〜^ 00 [1-9] \ d {8,} $〜D':以两个'0'开始,然后是一个非零数字,然后是任意8个或更多数字。 –
谢谢Wiktor,what \ d {8,}的意思是? – thecore7
* 8或更多数字* –