我正在使用以下代码来检测字符串是否是电话号码...
<?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
...我该如何解决这个问题...任何帮助将不胜感激。
问题是,{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";
}
?>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句