preg_match 提交前检查变量

preg_match checks on variable before submit

我需要确保在提交表单之前进行一些检查:

if ( preg_match( '/[^\d]/', $phone ) || (strlen( $phone ) < 11 ) ) 

以上语句检查$phone不小于11位

我需要做额外的检查。

$phone必须是11位数字(不多也不少)

$phone 必须以下列任何一项开头:010011012.

我该怎么做?

您可以在一个正则表达式中执行此检查:

/^01[0-2][0-9]{8}$/

无需通过 strlen 函数检查长度。

试试这个正则表达式

   /^(010|011|012)+\d{8}\z/

重写

           if ( preg_match("/^(010|011|012)+\d{8}\z/",$phone))

See this regex in action

https://eval.in/300433