用于验证10位手机号码的PHP preg_Match
我正在尝试使用PHP函数preg_match验证10位手机号码。以下代码未生成任何输出。
是正则表达式错误吗?或者我用错了。
我预期输出中会有Hi True
。如果匹配,则Hi False
;如果不匹配,则Hi False
。
<?php
$value = '9987199871';
$mobileregex = "/^[1-9][0-9]{10}$/" ;
echo "Hi " . preg_match($mobileregex, $value) === 1; // @debug
?>
正则表达式取自https://stackoverflow.com/a/7649835/4050261
解决方案
您声明的正则表达式将匹配11个数字,而不是10个。由于所有印度手机号码都以9、8、7或6开头,我们可以使用以下正则表达式:
^[6-9][0-9]{9}$
以下是您更新的代码片段:
$value = '9987199871';
$mobileregex = "/^[6-9][0-9]{9}$/" ;
echo "Hi " . preg_match($mobileregex, $value) === 1;
请注意,就验证而言,上述正则表达式可能仍远未达到最佳效果,但这至少是一个开始。
相关文章