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

$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为匹配呢?

 

谢谢。


料青山看我应如是
浏览 1040回答 2
2回答

守着星空守着你

'/^(?: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})$/';

蛊毒传说

先判断长度,然后在判断正则。备注一下:[0|1|2|3|5|6|7|8|9]可以写成[0-35-9];[5|7]可以写成[57]。写这么多|看着乱
打开App,查看更多内容
随时随地看视频慕课网APP