比较简洁的代码一:
1
2
3
|
$str = '' ; $isMatched = preg_match( '/^0?(13|14|15|17|18)[0-9]{9}$/' , $str , $matches ); var_dump( $isMatched , $matches ); |
代码二
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?php //正则表达式 $tel = "15558530459" ; //作者的手机号码,如果有疑问可以电话联系我,或者QQ联系我,我的QQ是mezongzi@qq.com if ( strlen ( $tel ) == "11" ) { //上面部分判断长度是不是11位 $n = preg_match_all( "/13[123569]{1}\d{8}|15[1235689]\d{8}|188\d{8}/" , $tel , $array ); /*接下来的正则表达式("/131,132,133,135,136,139开头随后跟着任意的8为数字 '|'(或者的意思) * 151,152,153,156,158.159开头的跟着任意的8为数字 * 或者是188开头的再跟着任意的8为数字,匹配其中的任意一组就通过了 * /")*/ var_dump( $array ); //看看是不是找到了,如果找到了,就会输出电话号码的 } else { echo "长度必须是11位" ; } /* * 虽然看起来复杂点,清楚理解! * 如果有更好的,可以贴出来,分享快乐! * */ ?> |