正则验证手机号是否合法(一次性手机号短信验证码平台)

目前移动、联通、电信三大运营商的手机号段如下:

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}$)"

呕心沥血 调试的源码