识别字符串中的电话号码

萨耶布

我正在使用以下代码来检测字符串是否是电话号码...

<?php
$text = "[email protected]" ;
if (preg_match_all('/\+?[0-9][0-9()-\s+]{4,20}[0-9]/',$text)){
    echo "phone number";    
}else{
    echo "not a phone number";
}
?>

问题是我到达了phone number应该到达的位置not a phone number...我该如何解决这个问题...任何帮助将不胜感激。

lix药

问题是,{4,20}该字符串将与前面的块出现4到20次的任何字符串匹配,因此它与示例电子邮件地址中的数字匹配。试试这个:

<?php
$text = "[email protected]" ;
if (preg_match_all('/^\+?([0-9-]|\s|\([0-9]+\)){4,20}[0-9]/',$text)){
    echo "phone number";    
}else{
    echo "not a phone number";
}
?>

正则表达式可视化

Debuggex演示

请注意,preg_match_allPHP <5.4需要3个参数

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章