【问题标题】:PHP preg_match() to validate international phone number by meeting specific criteriaPHP preg_match() 通过满足特定条件来验证国际电话号码
【发布时间】:2017-08-30 09:15:23
【问题描述】:

我想按照以下规则使用 php preg_match() 函数验证给定的国际电话号码: - 只允许数字,没有特殊字符和空格

  • 电话号码必须始终以“00”开头,而不是+

  • 电话号码长度不低于11个符号

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

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

但如果我通过:00014568978945,它会接受它是正确的,因为它检查是否有 min '00' 但第三个 '0' 会使电话无效..

检查上述要求的完整 preg_match() 条件应该如何?提前感谢您的宝贵时间!

【问题讨论】:

  • 尝试~^00[1-9]\d{8,}$~D:以两个0s 开头,然后是一个非零数字,然后是任意8 个或更多数字。
  • 谢谢 Wiktor,\d{8,} 是什么意思?
  • 8 位或更多位

标签: php preg-match


【解决方案1】:

我建议

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

请参阅regex demo

详情

  • ^00 - 以两个0s 开头,然后
  • [1-9] - 一个非零数字,然后是
  • \d{8,} - 任何 8 位或更多位
  • $ - 字符串结束。

由于您正在验证,我还包含了D PCRE_DOLLAR_ENDONLY 修饰符,它强制$ 锚始终匹配非常结尾字符串。

【讨论】:

  • 感谢 Wiktor,看来可以,我会在 7 分钟内接受。
猜你喜欢
  • 2012-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-13
  • 2011-12-27
  • 2012-05-22
  • 2010-09-15
  • 1970-01-01
相关资源
最近更新 更多