/**
* 匹配手机号码
* 1 3
* 0123456789
* 4
* 57
* 5
* 0123456789
* 7
* 8
**/
$number = '13956789032';

$pattern = '/1(3\d|4\[57]|5\d|7[01]|8\d)\d{8}/';

if(preg_match($pattern ,$number ,$arr)){

var_dump($arr);


回复讨论(解决方案)

so ,你遇到什么问题了?

手机号11位数字,简单点的就是\d{11}
如果要更加严谨,那就判断手机号的前缀。

但你这个正则已经很好了,可以判断到 15X 13X 18X 其它的没有了什么好的建议了。

有没有更加完整的验证,说思路就行

08-31 13:23