Python手机号合法性判断(列表和正则) 您所在的位置:网站首页 许昌移动号段都有哪些 Python手机号合法性判断(列表和正则)

Python手机号合法性判断(列表和正则)

2023-05-18 16:15| 来源: 网络整理| 查看: 265

Python手机号合法性判断(列表和正则)

注意:这里不对地区编码(第4-7位)和用户号码(第8-11位)进行合法性判断!

需要进行哪些判断:

1. 号码是否为11位 2. 号码是否全为数字 3. 号段(前三位)是否合法

手机号段:

移动号段:139 138 137 136 134 135 147 150 151 152 157 158 159 172 178 182 183 184 187 188 195 197 198 联通号段:130 131 132 140 145 146 155 156 166 185 186 175 176 196 电信号段:133 149 153 177 173 180 181 189 191 193 199 虚拟运营商号段:162 165 167 170 171

这里介绍了两种实现方法,一是用列表来实现,二是用正则表达式来实现

列表实现

这种方法对于像我这样的初学者来说很友好,简单易懂

# 号段列表 list1 = [139, 138, 137, 136, 134, 135, 147, 150, 151, 152, 157, 158, 159, 172, 178, 130, 131, 132, 140, 145, 146, 155, 156, 166, 185, 186, 175, 176, 196, 133, 149, 153, 177, 173, 180, 181, 189, 191, 193, 199, 162, 165, 167, 170, 171] # 键入手机号码 phone = input("请输入11位手机号码") # len(phone) == 11,判断phone是否为11位 # phone.isnumeric(),判断phone是否全为数字 # int(phone[:3]) in list1,判断phone前三位是否在合法号段列表内 if len(phone) == 11 and phone.isnumeric() and (int(phone[:3]) in list1): print("手机号码合法!") else: print("手机号码非法!")

正则表达式实现

正则表达式强大、便捷、高效,但掌握起来有一定难度

import re phone = input("请输入11位手机号码:") pattern = re.compile(r'^(13[0-9]|14[0|5|6|7|9]|15[0|1|2|3|5|6|7|8|9]|' r'16[2|5|6|7]|17[0|1|2|3|5|6|7|8]|18[0-9]|' r'19[1|3|5|6|7|8|9])\d{8}$') if pattern.search(phone): print("手机号码合法!") else: print("手机号码非法!")

更多正则表达式的实现可访问菜鸟教程

如果您喜欢这篇文章就请点赞收藏噢! 如果您发现错误或不足,欢迎在评论区指出噢!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有