$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为匹配呢?
谢谢。
'/^(?: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]。
写这么多|看着乱