1、移动号段
134,135,136,137, 138,139,147,150,151,152,157,158,159,178,182,183,184,187,188
2、联通号段
130,131,132,155,156,185,186,145,176。
3、电信号段
133,153,177,180,181,189。
4、工信部:新一批手机号段98、92、19、16要来了!(摘自某新闻内容)
从以上我们可以看到手机号码第一位是【1】开头,第二位则则有【3,4,5,6,7,8,9】,第三位则是【0-9】,第三位之后则是数字【0-9】。从而我们可以得出一个符合当前的手机号码验证正则表达式。
r"^[1][3-9][0-9]{9}$"
通过实际数据的分析,发现手机号码格式不仅为11位数字,其中含包含【+86】、【(86)】、【+0086】、【86空格】等情况,所以正则需要补充,如下。
r"(^+86|86|[86]|(86)|+0086|0086|[0086]|(0086))(s[1]|[1])[345678][0-9]{9}$"
国内固定电话和传真的格式基本都是带有0的区号+连接符”-“+电话号码,区号有3位、4位,电话号码有7位和8位的;其它格式的有前面带4、8等其他数字,或者不带连接符的。
区号:前面一个4、8、0,后面跟2-3位数字;
电话号码:7-8位数字;
r"^[4,8,0][0-9]{2,3}(-[0-9]{7,8}$|(s)[0-9]{7,8}$|[0-9]{7,8}$)"
手机号、电话正则匹配函数