本文實例講述了Python實現隨機生成手機號及正則驗證手機號的方法。分享給大家供大家參考,具體如下:
依據
根據2017年10月份最新的手機號正則進行編碼, 正則如下:
(13\d|14[579]|15[^4\D]|17[^49\D]|18\d)\d{8}
代碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# -*- 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
...
驗證 (使用正則驗證)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# -*- 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!...
希望本文所述對大家Python程序設計有所幫助。
原文鏈接:https://blog.csdn.net/xiaobuding007/article/details/78726833