首页新闻找找看学习计划

PHP正则匹配手机号码的问题

1
悬赏园豆:5 [已解决问题] 解决于 2012-12-05 12:17

$pattern = '/^13\d{9}|15[0|1|2|3|5|6|7|8|9]\d{8}|18[0|2|3|5|6|7|8|9]\d{8}|14[5|7]\d{8}$/';
preg_match($pattern, $cellular, $match);
echo $pattern;
echo '<br />';
echo $cellular;
echo '<br />';
var_dump($match);
die('');

 

应该是要匹配11位的数字,但是为啥输入一个12位的可以截取前11为匹配呢?

 

谢谢。

Untitled的主页 Untitled | 初学一级 | 园豆:101
提问于:2012-06-22 12:07
< >
分享
最佳答案
1

'/^(?:13\d{9}|15[0|1|2|3|5|6|7|8|9]\d{8}|18[0|2|3|5|6|7|8|9]\d{8}|14[5|7]\d{8})$/';

Untitled | 初学一级 |园豆:101 | 2012-12-05 12:17
其他回答(2)
0

不会正则,可以在正则验证之前对位数进行一下判断,超出就直接返回错误.

收获园豆:2
tongfan | 园豆:206 (菜鸟二级) | 2012-06-25 17:35
0

先判断长度,然后在判断正则。

备注一下:[0|1|2|3|5|6|7|8|9]可以写成[0-35-9];[5|7]可以写成[57]。

写这么多|看着乱

收获园豆:3
csj0451 | 园豆:229 (菜鸟二级) | 2012-08-13 12:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册