用于验证10位手机号码的PHP preg_Match

2022-03-29 00:00:00 regex 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;

请注意,就验证而言,上述正则表达式可能仍远未达到最佳效果,但这至少是一个开始。

相关文章