Python實現(xiàn)隨機生成手機號及正則驗證手機號的方法
本文實例講述了Python實現(xiàn)隨機生成手機號及正則驗證手機號的方法。分享給大家供大家參考,具體如下:
依據(jù)
根據(jù)2017年10月份最新的手機號正則進行編碼, 正則如下:
(13\d|14[579]|15[^4\D]|17[^49\D]|18\d)\d{8}
代碼
# -*- coding: utf-8 -*-
import random
def create_phone():
# 第二位數(shù)字
second = [3, 4, 5, 7, 8][random.randint(0, 4)]
# 第三位數(shù)字
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]
# 最后八位數(shù)字
suffix = random.randint(9999999,100000000)
# 拼接手機號
return "1{}{}{}".format(second, third, suffix)
# 生成手機號
phone = create_phone()
print(phone)
運行結(jié)果
13937342780
15835720604
14589505530
...
PS:這里再為打擊推薦一款功能相似的在線工具供大家參考:
在線隨機生成個人信息數(shù)據(jù)工具:
http://tools.jb51.net/aideddesign/rnd_userinfo
驗證 (使用正則驗證)
# -*- coding: utf-8 -*-
import random
import re
def create_phone():
# 第二位數(shù)字
second = [3, 4, 5, 7, 8][random.randint(0, 4)]
# 第三位數(shù)字
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]
# 最后八位數(shù)字
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!")
驗證結(jié)果
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
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python數(shù)學(xué)運算技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python入門與進階經(jīng)典教程》及《Python正則表達式用法總結(jié)》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
python數(shù)據(jù)分析工具之 matplotlib詳解
對于 Python 來說,matplotlib 是最著名的繪圖庫,它主要用于二維繪圖,當然也可以進行簡單的三維繪圖。這篇文章主要介紹了python數(shù)據(jù)分析工具之 matplotlib的相關(guān)知識,需要的朋友可以參考下2020-04-04
用python實現(xiàn)各種數(shù)據(jù)結(jié)構(gòu)
這篇文章主要分享的是用python實現(xiàn)各種數(shù)據(jù)結(jié)構(gòu),快速排序、選擇排序、插入排序、歸并排序、堆排序heapq模塊等相關(guān)資料,感興趣的小伙伴可以參考一下2021-12-12
Python sklearn庫實現(xiàn)PCA教程(以鳶尾花分類為例)
今天小編就為大家分享一篇Python sklearn庫實現(xiàn)PCA教程(以鳶尾花分類為例),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
Python命令行參數(shù)解析包argparse的使用詳解
argparse?是?python?自帶的命令行參數(shù)解析包,可以用來方便的服務(wù)命令行參數(shù)。本文將通過示例和大家詳細講講argparse的使用,需要的可以參考一下2022-09-09
python-opencv-cv2.threshold()二值化函數(shù)的使用
這篇文章主要介紹了python-opencv-cv2.threshold()二值化函數(shù)的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11

