Python实现随机生成手机号及正则验证手机号的方法
作者:tian_shl 发布时间:2021-05-30 01:41:27
标签:Python,随机生成,正则验证,手机号
本文实例讲述了Python实现随机生成手机号及正则验证手机号的方法。分享给大家供大家参考,具体如下:
依据
根据2017年10月份最新的手机号正则进行编码, 正则如下:(13\d|14[579]|15[^4\D]|17[^49\D]|18\d)\d{8}
代码
# -*- coding: utf-8 -*-
import random
def create_phone():
# 第二位数字
second = [3, 4, 5, 7, 8][random.randint(0, 4)]
# 第三位数字
third = {
3: random.randint(0, 9),
4: [5, 7, 9][random.randint(0, 2)],
5: [i for i in range(10) if i != 4][random.randint(0, 8)],
7: [i for i in range(10) if i not in [4, 9]][random.randint(0, 7)],
8: random.randint(0, 9),
}[second]
# 最后八位数字
suffix = random.randint(9999999,100000000)
# 拼接手机号
return "1{}{}{}".format(second, third, suffix)
# 生成手机号
phone = create_phone()
print(phone)
运行结果
13937342780
15835720604
14589505530
...
PS:这里再为打击推荐一款功能相似的在线工具供大家参考:
在线随机生成个人信息数据工具:
http://tools.jb51.net/aideddesign/rnd_userinfo
验证 (使用正则验证)
# -*- coding: utf-8 -*-
import random
import re
def create_phone():
# 第二位数字
second = [3, 4, 5, 7, 8][random.randint(0, 4)]
# 第三位数字
third = {
3: random.randint(0, 9),
4: [5, 7, 9][random.randint(0, 2)],
5: [i for i in range(10) if i != 4][random.randint(0, 8)],
7: [i for i in range(10) if i not in [4, 9]][random.randint(0, 7)],
8: random.randint(0, 9),
}[second]
# 最后八位数字
suffix = random.randint(9999999,100000000)
# 拼接手机号
return "1{}{}{}".format(second, third, suffix)
# 生成手机号
phone = create_phone()
print(phone)
# 正则
reg = re.compile("(13\d|14[579]|15[^4\D]|17[^49\D]|18\d)\d{8}")
print("Test passed!" if reg.match(phone) else "Test failed!")
验证结果
18662182464
Test passed!15896505277
Test passed!14952715286
Test passed!...
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript
正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg
希望本文所述对大家Python程序设计有所帮助。
来源:https://blog.csdn.net/xiaobuding007/article/details/78726833


猜你喜欢
- 本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的陷阱重现我们就用实际的举例来演示我们今天所
- 1、从Kmeans说起Kmeans是一个非常基础的聚类算法,使用了迭代的思想,关于其原理这里不说了。下面说一下如何在matlab中使用kme
- 数据可视化动画还在用 Excel 做?今天分享一个简单的 Python 包就能分分钟搞定!而且生成的动画也足够丝滑,效果是酱紫的:这是一位专
- matplotlib简介matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行
- 概述今天我们要来做一个进阶的花分类问题. 不同于之前做过的鸢尾花, 这次我们会分析 102 中不同的花. 是不是很上头呀.预处理导包常规操作
- python中有指定的代码进行输入操作,所以今天就由小编来为大家介绍python怎么实现键盘输入。第一首先打开电脑的python编辑工具。再
- 0. 前言数据处理过程中,可视化可以更直观得感受数据,因此打算结合自己的一些实践经理,以效果为准写这篇博客。内容应该会不断扩充。1. mat
- 问题背景:新添加一个virtualenv环境时,需要安装指定的django==1.9.8,但是在添加解释器时,总报一个fuck egg的问题
- 今天给大家分享Listary v5.00.2843 2022年6月9日亲测可用注册码 ,是一款最新的激活码,有需要的朋友前来查看。Lista
- 项目中要对短文本进行相似度估计,word2vec是一个很火的工具。本文就word2vec的训练以及加载进行了总结。word2vec的原理就不
- 一个else语句可以使用if语句结合起来。如果在if语句中的条件表达式解析为0或false值,那么else语句包含代码执行。el
- 前言Python是面向对象的程序设计(Object Oriented Programming)。面向对象的程序设计的一条基本原则是:计算机程
- mysql在5.1之后增加了存储过程的功能, 存储过程运行在mysql内部,语句都已经编译好了,速度比sql更快. 存储过程与mysql相当
- 本文实例讲述了Golang正整数指定规则排序算法问题。分享给大家供大家参考,具体如下:给定字符串内有很多正整数,要求对这些正整数进行排序,然
- RDPY 是基于 Twisted Python 实现的微软 RDP 远程桌面协议。RDPY 提供了如下 RDP 和 VNC 支持:●RDP
- apscheduler 模块安装apscheduler 模块pip install apschedulerapscheduler 模块介绍A
- 闭包在我们使用返回函数的时候,由于我们在一个函数中需要返回另一个函数,因此,我们在这个函数中就需要重新定义一个函数。而这样,就造成了我们的函
- 前言: 经过前面文章学习,我们知道 binlog 会记录数据库所有执行的 DDL 和 DML 语句(除了数据查询语句select、
- 本文以实例形式讲述了Python中replace方法,很有实用价值,具体如下:replace方法主要有两种:last_date = &quo
- 学习笔记,写到哪是哪。接着上一篇对纯文本文件读写操作,主要去实现一些文件夹操作。创建文件夹创建文件夹的时候往往要先判断文件夹是否存在。样例代