身份证格式校验

身份证格式校验

身份证号码的构成
在这里插入图片描述

import re
import time
from datetime import datetime, date


class IdCard(object):
    CODE_SUCCESS = 200  # 成功
    CODE_LENGTH_ERROR = 701  # 卡号位数错误
    CODE_FORMAT_ERROR = 702  # 卡号格式错误
    CODE_AREA_ERROR = 703  # 区位码错误
    CODE_BIRTH_DATE_ERROR = 704  # 出生年月日错误
    CODE_SIGN_ERROR = 705  # 校验位错误

    @staticmethod
    def check(id_card):
        id_card = str(id_card)
        if len(id_card) != 18:
            return {
                'code': IdCard.CODE_LENGTH_ERROR,
                'msg': "卡号位数错误"
            }

        if not re.match(r'^\d+$', id_card[:17]):
            return {
                'code': IdCard.CODE_FORMAT_ERROR,
                'msg': "卡号格式错误"
            }
        if not IdCard.check_area(id_card[:6]):
            return {
                'code': IdCard.CODE_AREA_ERROR,
                'msg': "区位码错误"
            }
        if not IdCard.check_date(id_card[6:14]):
            return {
                'code': IdCard.CODE_BIRTH_DATE_ERROR,
                'msg': "出生年月日错误"
            }
        if not IdCard.check_sign(id_card):
            return {
                'code': IdCard.CODE_SIGN_ERROR,
                'msg': "校验位错误"
            }

        return {
            'code': IdCard.CODE_SUCCESS
        }

    @staticmethod
    def check_sign(id_card):
        weight = (7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2)
        _sum = 0
        for i in range(0, 17):
            _sum += weight[i] * int(id_card[i])
        left = 12 - _sum % 11
        if left == 10:
            return id_card[17].lower() == 'x'
        else:
            return int(id_card[17]) == left

    @staticmethod
    def check_date(date_str):
        today = datetime.now().strftime('%Y%m%d')
        if date_str > today or date_str < '18800101':
            return False

        try:
            date(int(date_str[:4]), int(date_str[4:6]), int(date_str[6:]))
            return True
        except:
            return False

    @staticmethod
    def check_area(area_code):
        area_code = int(area_code)
        if area_code not in (
                110000, 110100, 110101, 110102, 110103, 110104, 110105, 110106, 110107, 110108, 110109, 110111, 110112,
                110113,
                110114, 110115, 110116, 110117, 110200, 110228, 110229, 120000, 120100, 120101, 120102, 120103, 120104,
                120105,
                120106, 120107, 120108, 120109, 120110, 120111, 120112, 120113, 120114, 120115, 120200, 120221, 120223,
                120225,
                130000, 130100, 130101, 130102, 130103, 130104, 130105, 130107, 130108, 130121, 130123, 130124, 130125,
                130126,
                130127, 130128, 130129, 130130, 130131, 130132, 130133, 130181, 130182, 130183, 130184, 130185, 130200,
                130201,
                130202, 130203, 130204, 130205, 130207, 130208, 130223, 130224, 130225, 130227, 130229, 130230, 130281,
                130283,
                130300, 130301, 130302, 130303, 130304, 130321, 130322, 130323, 130324, 130400, 130401, 130402, 130403,
                130404,
                130406, 130421, 130423, 130424, 130425, 130426, 130427, 130428, 130429, 130430, 130431, 130432, 130433,
                130434,
                130435, 130481, 130500, 130501, 130502, 130503, 130521, 130522, 130523, 130524, 130525, 130526, 130527,
                130528,
                130529, 130530, 130531, 130532, 130533, 130534, 130535, 130581, 130582, 130600, 130601, 130602, 130603,
                130604,
                130621, 130622, 130623, 130624, 130625, 130626, 130627, 130628, 130629, 130630, 130631, 130632, 130634,
                130635,
                130636, 130637, 130638, 130681, 130682, 130683, 130684, 130700, 130701, 130702, 130703, 130705, 130706,
                130721,
                130722, 130723, 130724, 130725, 130726, 130727, 130728, 130729, 130730, 130731, 130732, 130733, 130800,
                130801,
                130802, 130803, 130804, 130821, 130822, 130823, 130824, 130825, 130826, 130827, 130828, 130900, 130901,
                130902,
                130903, 130921, 130922, 130923, 130924, 130925, 130926, 130927, 130928, 130929, 130930, 130981, 130982,
                130983,
                130984, 131000, 131001, 131002, 131003, 131022, 131023, 131024, 131025, 131026, 131028, 131081, 131082,
                131100,
                131101, 131102, 131121, 131122, 131123, 131124, 131125, 131126, 131127, 131128, 131181, 131182, 140000,
                140100,
                140101, 140105, 140106, 140107, 140108, 140109, 140110, 140121, 140122, 140123, 140181, 140200, 140201,
                140202,
                140203, 140211, 140212, 140221, 140222, 140223, 140224, 140225, 140226, 140227, 140300, 140301, 140302,
                140303,
                140311, 140321, 140322, 140400, 140401, 140402, 140411, 140421, 140423, 140424, 140425, 140426, 140427,
                140428,
                140429, 140430, 140431, 140481, 140500, 140501, 140502, 140521, 140522, 140524, 140525, 140581, 140600,
                140601,
                140602, 140603, 140621, 140622, 140623, 140624, 140700, 140701, 140702, 140721, 140722, 140723, 140724,
                140725,
                140726, 140727, 140728, 140729, 140781, 140800, 140801, 140802, 140821, 140822, 140823, 140824, 140825,
                140826,
                140827, 140828, 140829, 140830, 140881, 140882, 140900, 140901, 140902, 140921, 140922, 140923, 140924,
                140925,
                140926, 140927, 140928, 140929, 140930, 140931, 140932, 140981, 141000, 141001, 141002, 141021, 141022,
                141023,
                141024, 141025, 141026, 141027, 141028, 141029, 141030, 141031, 141032, 141033, 141034, 141081, 141082,
                141100,
                141101, 141102, 141121, 141122, 141123, 141124, 141125, 141126, 141127, 141128, 141129, 141130, 141181,
                141182,
                150000, 150100, 150101, 150102, 150103, 150104, 150105, 150121, 150122, 150123, 150124, 150125, 150200,
                150201,
                150202, 150203, 150204, 150205, 150206, 150207, 150221, 150222, 150223, 150300, 150301, 150302, 150303,
                150304,
                150400, 150401, 150402, 150403, 150404, 150421, 150422, 150423, 150424, 150425, 150426, 150428, 150429,
                150430,
                150500, 150501, 150502, 150521, 150522, 150523, 150524, 150525, 150526, 150581, 150600, 150602, 150621,
                150622,
                150623, 150624, 150625, 150626, 150627, 150700, 150701, 150702, 150721, 150722, 150723, 150724, 150725,
                150726,
                150727, 150781, 150782, 150783, 150784, 150785, 150800, 150801, 150802, 150821, 150822, 150823, 150824,
                150825,
                150826, 150900, 150901, 150902, 150921, 150922, 150923, 150924, 150925, 150926, 150927, 150928, 150929,
                150981,
                152200, 152201, 152202, 152221, 152222, 152223, 152224, 152500, 152501, 152502, 152522, 152523, 152524,
                152525,
                152526, 152527, 152528, 152529, 152530, 152531, 152600, 152900, 152921, 152922, 152923, 210000, 210100,
                210101,
                210102, 210103, 210104, 210105, 210106, 210111, 210112, 210113, 210114, 210122, 210123, 210124, 210181,
                210200,
                210201, 210202, 210203, 210204, 210211, 210212, 210213, 210224, 210281, 210282, 210283, 210300, 210301,
                210302,
                210303, 210304, 210311, 210321, 210323, 210381, 210400, 210401, 210402, 210403, 210404, 210411, 210421,
                210422,
                210423, 210500, 210501, 210502, 210503, 210504, 210505, 210521, 210522, 210600, 210601, 210602, 210603,
                210604,
                210624, 210681, 210682, 210700, 210701, 210702, 210703, 210711, 210726, 210727, 210781, 210782, 210800,
                210801,
                210802, 210803, 210804, 210811, 210881, 210882, 210900, 210901, 210902, 210903, 210904, 210905, 210911,
                210921,
                210922, 211000, 211001, 211002, 211003, 211004, 211005, 211011, 211021, 211081, 211100, 211101, 211102,
                211103,
                211121, 211122, 211200, 211201, 211202, 211204, 211221, 211223, 211224, 211281, 211282, 211300, 211301,
                211302,
                211303, 211321, 211322, 211324, 211381, 211382, 211400, 211401, 211402, 211403, 211404, 211421, 211422,
                211481,
                220000, 220100, 220101, 220102, 220103, 220104, 220105, 220106, 220112, 220122, 220181, 220182, 220183,
                220200,
                220201, 220202, 220203, 220204, 220211, 220221, 220281, 220282, 220283, 220284, 220300, 220301, 220302,
                220303,
                220322, 220323, 220381, 220382, 220400, 220401, 220402, 220403, 220421, 220422, 220500, 220501, 220502,
                220503,
                220521, 220523, 220524, 220581, 220582, 220600, 220601, 220602, 220621, 220622, 220623, 220625, 220681,
                220700,
                220701, 220702, 220721, 220722, 220723, 220724, 220800, 220801, 220802, 220821, 220822, 220881, 220882,
                222400,
                222401, 222402, 222403, 222404, 222405, 222406, 222424, 222426, 230000, 230100, 230101, 230102, 230103,
                230104,
                230105, 230106, 230107, 230108, 230121, 230123, 230124, 230125, 230126, 230127, 230128, 230129, 230181,
                230182,
                230183, 230184, 230200, 230201, 230202, 230203, 230204, 230205, 230206, 230207, 230208, 230221, 230223,
                230224,
                230225, 230227, 230229, 230230, 230231, 230281, 230300, 230301, 230302, 230303, 230304, 230305, 230306,
                230307,
                230321, 230381, 230382, 230400, 230401, 230402, 230403, 230404, 230405, 230406, 230407, 230421, 230422,
                230500,
                230501, 230502, 230503, 230505, 230506, 230521, 230522, 230523, 230524, 230600, 230601, 230602, 230603,
                230604,
                230605, 230606, 230621, 230622, 230623, 230624, 230700, 230701, 230702, 230703, 230704, 230705, 230706,
                230707,
                230708, 230709, 230710, 230711, 230712, 230713, 230714, 230715, 230716, 230722, 230781, 230800, 230801,
                230802,
                230803, 230804, 230805, 230811, 230822, 230826, 230828, 230833, 230881, 230882, 230900, 230901, 230902,
                230903,
                230904, 230921, 231000, 231001, 231002, 231003, 231004, 231005, 231024, 231025, 231081, 231083, 231084,
                231085,
                231100, 231101, 231102, 231121, 231123, 231124, 231181, 231182, 231200, 231201, 231202, 231221, 231222,
                231223,
                231224, 231225, 231226, 231281, 231282, 231283, 232700, 232721, 232722, 232723, 310000, 310100, 310101,
                310103,
                310104, 310105, 310106, 310107, 310108, 310109, 310110, 310112, 310113, 310114, 310115, 310116, 310117,
                310118,
                310119, 310120, 310200, 310230, 320000, 320100, 320101, 320102, 320103, 320104, 320105, 320106, 320107,
                320111,
                320113, 320114, 320115, 320116, 320124, 320125, 320200, 320201, 320202, 320203, 320204, 320205, 320206,
                320211,
                320281, 320282, 320300, 320301, 320302, 320303, 320304, 320305, 320311, 320321, 320322, 320323, 320324,
                320381,
                320382, 320400, 320401, 320402, 320404, 320405, 320411, 320412, 320481, 320482, 320500, 320501, 320502,
                320503,
                320504, 320505, 320506, 320507, 320581, 320582, 320583, 320584, 320585, 320600, 320601, 320602, 320611,
                320621,
                320623, 320681, 320682, 320683, 320684, 320700, 320701, 320703, 320705, 320706, 320721, 320722, 320723,
                320724,
                320800, 320801, 320802, 320803, 320804, 320811, 320826, 320829, 320830, 320831, 320900, 320901, 320902,
                320903,
                320921, 320922, 320923, 320924, 320925, 320981, 320982, 321000, 321001, 321002, 321003, 321011, 321023,
                321081,
                321084, 321088, 321100, 321101, 321102, 321111, 321112, 321181, 321182, 321183, 321200, 321201, 321202,
                321203,
                321281, 321282, 321283, 321284, 321300, 321301, 321302, 321321, 321322, 321323, 321324, 330000, 330100,
                330101,
                330102, 330103, 330104, 330105, 330106, 330108, 330109, 330110, 330122, 330127, 330182, 330183, 330185,
                330200,
                330201, 330203, 330204, 330205, 330206, 330211, 330212, 330225, 330226, 330281, 330282, 330283, 330300,
                330301,
                330302, 330303, 330304, 330322, 330324, 330326, 330327, 330328, 330329, 330381, 330382, 330400, 330401,
                330402,
                330411, 330421, 330424, 330481, 330482, 330483, 330500, 330501, 330502, 330503, 330521, 330522, 330523,
                330600,
                330601, 330602, 330621, 330624, 330681, 330682, 330683, 330700, 330701, 330702, 330703, 330723, 330726,
                330727,
                330781, 330782, 330783, 330784, 330800, 330801, 330802, 330803, 330822, 330824, 330825, 330881, 330900,
                330901,
                330902, 330903, 330921, 330922, 331000, 331001, 331002, 331003, 331004, 331021, 331022, 331023, 331024,
                331081,
                331082, 331100, 331101, 331102, 331121, 331122, 331123, 331124, 331125, 331126, 331127, 331181, 340000,
                340100,
                340101, 340102, 340103, 340104, 340111, 340121, 340122, 340123, 340200, 340201, 340202, 340203, 340204,
                340207,
                340221, 340222, 340223, 340300, 340301, 340302, 340303, 340304, 340311, 340321, 340322, 340323, 340400,
                340401,
                340402, 340403, 340404, 340405, 340406, 340421, 340500, 340501, 340502, 340503, 340504, 340521, 340600,
                340601,
                340602, 340603, 340604, 340621, 340700, 340701, 340702, 340703, 340711, 340721, 340800, 340801, 340802,
                340803,
                340811, 340822, 340823, 340824, 340825, 340826, 340827, 340828, 340881, 341000, 341001, 341002, 341003,
                341004,
                341021, 341022, 341023, 341024, 341100, 341101, 341102, 341103, 341122, 341124, 341125, 341126, 341181,
                341182,
                341200, 341201, 341202, 341203, 341204, 341221, 341222, 341225, 341226, 341282, 341300, 341301, 341302,
                341321,
                341322, 341323, 341324, 341400, 341401, 341402, 341421, 341422, 341423, 341424, 341500, 341501, 341502,
                341503,
                341521, 341522, 341523, 341524, 341525, 341600, 341601, 341602, 341621, 341622, 341623, 341700, 341701,
                341702,
                341721, 341722, 341723, 341800, 341801, 341802, 341821, 341822, 341823, 341824, 341825, 341881, 350000,
                350100,
                350101, 350102, 350103, 350104, 350105, 350111, 350121, 350122, 350123, 350124, 350125, 350128, 350181,
                350182,
                350200, 350201, 350203, 350205, 350206, 350211, 350212, 350213, 350300, 350301, 350302, 350303, 350304,
                350305,
                350322, 350400, 350401, 350402, 350403, 350421, 350423, 350424, 350425, 350426, 350427, 350428, 350429,
                350430,
                350481, 350500, 350501, 350502, 350503, 350504, 350505, 350521, 350524, 350525, 350526, 350527, 350581,
                350582,
                350583, 350600, 350601, 350602, 350603, 350622, 350623, 350624, 350625, 350626, 350627, 350628, 350629,
                350681,
                350700, 350701, 350702, 350721, 350722, 350723, 350724, 350725, 350781, 350782, 350783, 350784, 350800,
                350801,
                350802, 350821, 350822, 350823, 350824, 350825, 350881, 350900, 350901, 350902, 350921, 350922, 350923,
                350924,
                350925, 350926, 350981, 350982, 360000, 360100, 360101, 360102, 360103, 360104, 360105, 360111, 360121,
                360122,
                360123, 360124, 360200, 360201, 360202, 360203, 360222, 360281, 360300, 360301, 360302, 360313, 360321,
                360322,
                360323, 360400, 360401, 360402, 360403, 360421, 360423, 360424, 360425, 360426, 360427, 360428, 360429,
                360430,
                360481, 360500, 360501, 360502, 360521, 360600, 360601, 360602, 360622, 360681, 360700, 360701, 360702,
                360721,
                360722, 360723, 360724, 360725, 360726, 360727, 360728, 360729, 360730, 360731, 360732, 360733, 360734,
                360735,
                360781, 360782, 360800, 360801, 360802, 360803, 360821, 360822, 360823, 360824, 360825, 360826, 360827,
                360828,
                360829, 360830, 360881, 360900, 360901, 360902, 360921, 360922, 360923, 360924, 360925, 360926, 360981,
                360982,
                360983, 361000, 361001, 361002, 361021, 361022, 361023, 361024, 361025, 361026, 361027, 361028, 361029,
                361030,
                361100, 361101, 361102, 361121, 361122, 361123, 361124, 361125, 361126, 361127, 361128, 361129, 361130,
                361181,
                370000, 370100, 370101, 370102, 370103, 370104, 370105, 370112, 370113, 370124, 370125, 370126, 370181,
                370200,
                370201, 370202, 370203, 370205, 370211, 370212, 370213, 370214, 370281, 370282, 370283, 370284, 370285,
                370300,
                370301, 370302, 370303, 370304, 370305, 370306, 370321, 370322, 370323, 370400, 370401, 370402, 370403,
                370404,
                370405, 370406, 370481, 370500, 370501, 370502, 370503, 370521, 370522, 370523, 370600, 370601, 370602,
                370611,
                370612, 370613, 370634, 370681, 370682, 370683, 370684, 370685, 370686, 370687, 370700, 370701, 370702,
                370703,
                370704, 370705, 370724, 370725, 370781, 370782, 370783, 370784, 370785, 370786, 370800, 370801, 370802,
                370811,
                370826, 370827, 370828, 370829, 370830, 370831, 370832, 370881, 370882, 370883, 370900, 370901, 370902,
                370903,
                370921, 370923, 370982, 370983, 371000, 371001, 371002, 371081, 371082, 371083, 371100, 371101, 371102,
                371121,
                371122, 371200, 371201, 371202, 371203, 371300, 371301, 371302, 371311, 371312, 371321, 371322, 371323,
                371324,
                371325, 371326, 371327, 371328, 371329, 371400, 371401, 371402, 371421, 371422, 371423, 371424, 371425,
                371426,
                371427, 371428, 371481, 371482, 371500, 371501, 371502, 371521, 371522, 371523, 371524, 371525, 371526,
                371581,
                371600, 371601, 371602, 371621, 371622, 371623, 371624, 371625, 371626, 371700, 371701, 371702, 371721,
                371722,
                371723, 371724, 371725, 371726, 371727, 371728, 410000, 410100, 410101, 410102, 410103, 410104, 410105,
                410106,
                410108, 410122, 410181, 410182, 410183, 410184, 410185, 410200, 410201, 410202, 410203, 410204, 410205,
                410211,
                410221, 410222, 410223, 410224, 410225, 410300, 410301, 410302, 410303, 410304, 410305, 410306, 410307,
                410322,
                410323, 410324, 410325, 410326, 410327, 410328, 410329, 410381, 410400, 410401, 410402, 410403, 410404,
                410411,
                410421, 410422, 410423, 410425, 410481, 410482, 410500, 410501, 410502, 410503, 410505, 410506, 410522,
                410523,
                410526, 410527, 410581, 410600, 410601, 410602, 410603, 410611, 410621, 410622, 410700, 410701, 410702,
                410703,
                410704, 410711, 410721, 410724, 410725, 410726, 410727, 410728, 410781, 410782, 410800, 410801, 410802,
                410803,
                410804, 410811, 410821, 410822, 410823, 410825, 410881, 410882, 410883, 410900, 410901, 410902, 410922,
                410923,
                410926, 410927, 410928, 411000, 411001, 411002, 411023, 411024, 411025, 411081, 411082, 411100, 411101,
                411102,
                411121, 411122, 411123, 411200, 411201, 411202, 411221, 411222, 411224, 411281, 411282, 411300, 411301,
                411302,
                411303, 411321, 411322, 411323, 411324, 411325, 411326, 411327, 411328, 411329, 411330, 411381, 411400,
                411401,
                411402, 411403, 411421, 411422, 411423, 411424, 411425, 411426, 411481, 411500, 411501, 411502, 411503,
                411521,
                411522, 411523, 411524, 411525, 411526, 411527, 411528, 411600, 411601, 411602, 411621, 411622, 411623,
                411624,
                411625, 411626, 411627, 411628, 411681, 411700, 411701, 411702, 411721, 411722, 411723, 411724, 411725,
                411726,
                411727, 411728, 411729, 420000, 420100, 420101, 420102, 420103, 420104, 420105, 420106, 420107, 420111,
                420112,
                420113, 420114, 420115, 420116, 420117, 420200, 420201, 420202, 420203, 420204, 420205, 420222, 420281,
                420300,
                420301, 420302, 420303, 420321, 420322, 420323, 420324, 420325, 420381, 420500, 420501, 420502, 420503,
                420504,
                420505, 420506, 420525, 420526, 420527, 420528, 420529, 420581, 420582, 420583, 420600, 420601, 420602,
                420606,
                420607, 420624, 420625, 420626, 420682, 420683, 420684, 420700, 420701, 420702, 420703, 420704, 420800,
                420801,
                420802, 420804, 420821, 420822, 420881, 420900, 420901, 420902, 420921, 420922, 420923, 420981, 420982,
                420984,
                421000, 421001, 421002, 421003, 421022, 421023, 421024, 421081, 421083, 421087, 421100, 421101, 421102,
                421121,
                421122, 421123, 421124, 421125, 421126, 421127, 421181, 421182, 421200, 421201, 421202, 421221, 421222,
                421223,
                421224, 421281, 421300, 421301, 421302, 421381, 422800, 422801, 422802, 422822, 422823, 422825, 422826,
                422827,
                422828, 429000, 429004, 429005, 429006, 429021, 430000, 430100, 430101, 430102, 430103, 430104, 430105,
                430111,
                430121, 430122, 430124, 430181, 430200, 430201, 430202, 430203, 430204, 430211, 430221, 430223, 430224,
                430225,
                430281, 430300, 430301, 430302, 430304, 430321, 430381, 430382, 430400, 430401, 430405, 430406, 430407,
                430408,
                430412, 430421, 430422, 430423, 430424, 430426, 430481, 430482, 430500, 430501, 430502, 430503, 430511,
                430521,
                430522, 430523, 430524, 430525, 430527, 430528, 430529, 430581, 430600, 430601, 430602, 430603, 430611,
                430621,
                430623, 430624, 430626, 430681, 430682, 430700, 430701, 430702, 430703, 430721, 430722, 430723, 430724,
                430725,
                430726, 430781, 430800, 430801, 430802, 430811, 430821, 430822, 430900, 430901, 430902, 430903, 430921,
                430922,
                430923, 430981, 431000, 431001, 431002, 431003, 431021, 431022, 431023, 431024, 431025, 431026, 431027,
                431028,
                431081, 431100, 431101, 431102, 431103, 431121, 431122, 431123, 431124, 431125, 431126, 431127, 431128,
                431129,
                431200, 431201, 431202, 431221, 431222, 431223, 431224, 431225, 431226, 431227, 431228, 431229, 431230,
                431281,
                431300, 431301, 431302, 431321, 431322, 431381, 431382, 433100, 433101, 433122, 433123, 433124, 433125,
                433126,
                433127, 433130, 440000, 440100, 440101, 440102, 440103, 440104, 440105, 440106, 440107, 440111, 440112,
                440113,
                440114, 440183, 440184, 440200, 440201, 440202, 440203, 440204, 440221, 440222, 440224, 440229, 440232,
                440233,
                440281, 440282, 440300, 440301, 440303, 440304, 440305, 440306, 440307, 440308, 440400, 440401, 440402,
                440403,
                440404, 440500, 440501, 440507, 440511, 440512, 440513, 440514, 440515, 440523, 440600, 440601, 440604,
                440605,
                440606, 440607, 440608, 440700, 440701, 440703, 440704, 440705, 440781, 440783, 440784, 440785, 440800,
                440801,
                440802, 440803, 440804, 440811, 440823, 440825, 440881, 440882, 440883, 440900, 440901, 440902, 440903,
                440923,
                440981, 440982, 440983, 441200, 441201, 441202, 441203, 441223, 441224, 441225, 441226, 441283, 441284,
                441300,
                441301, 441302, 441303, 441322, 441323, 441324, 441400, 441401, 441402, 441421, 441422, 441423, 441424,
                441426,
                441427, 441481, 441500, 441501, 441502, 441521, 441523, 441581, 441600, 441601, 441602, 441621, 441622,
                441623,
                441624, 441625, 441700, 441701, 441702, 441721, 441723, 441781, 441800, 441801, 441802, 441821, 441823,
                441825,
                441826, 441827, 441881, 441882, 441900, 442000, 445100, 445101, 445102, 445121, 445122, 445200, 445201,
                445202,
                445221, 445222, 445224, 445281, 445300, 445301, 445302, 445321, 445322, 445323, 445381, 450000, 450100,
                450101,
                450102, 450103, 450104, 450105, 450106, 450121, 450122, 450123, 450124, 450125, 450126, 450127, 450200,
                450201,
                450202, 450203, 450204, 450205, 450221, 450222, 450223, 450224, 450225, 450226, 450300, 450301, 450302,
                450303,
                450304, 450305, 450311, 450321, 450322, 450323, 450324, 450325, 450326, 450327, 450328, 450329, 450330,
                450331,
                450332, 450400, 450401, 450403, 450404, 450405, 450421, 450422, 450423, 450481, 450500, 450501, 450502,
                450503,
                450512, 450521, 450600, 450601, 450602, 450603, 450621, 450681, 450700, 450701, 450702, 450703, 450721,
                450722,
                450800, 450801, 450802, 450803, 450804, 450821, 450881, 450900, 450901, 450902, 450921, 450922, 450923,
                450924,
                450981, 451000, 451001, 451002, 451021, 451022, 451023, 451024, 451025, 451026, 451027, 451028, 451029,
                451030,
                451031, 451100, 451101, 451102, 451121, 451122, 451123, 451200, 451201, 451202, 451221, 451222, 451223,
                451224,
                451225, 451226, 451227, 451228, 451229, 451281, 451300, 451301, 451302, 451321, 451322, 451323, 451324,
                451381,
                451400, 451401, 451402, 451421, 451422, 451423, 451424, 451425, 451481, 460000, 460100, 460101, 460105,
                460106,
                460107, 460108, 460200, 460201, 469000, 469001, 469002, 469003, 469005, 469006, 469007, 469025, 469026,
                469027,
                469028, 469030, 469031, 469033, 469034, 469035, 469036, 469037, 469038, 469039, 500000, 500100, 500101,
                500102,
                500103, 500104, 500105, 500106, 500107, 500108, 500109, 500110, 500111, 500112, 500113, 500114, 500115,
                500200,
                500222, 500223, 500224, 500225, 500226, 500227, 500228, 500229, 500230, 500231, 500232, 500233, 500234,
                500235,
                500236, 500237, 500238, 500240, 500241, 500242, 500243, 500300, 500381, 500382, 500383, 500384, 510000,
                510100,
                510101, 510104, 510105, 510106, 510107, 510108, 510112, 510113, 510114, 510115, 510121, 510122, 510124,
                510129,
                510131, 510132, 510181, 510182, 510183, 510184, 510300, 510301, 510302, 510303, 510304, 510311, 510321,
                510322,
                510400, 510401, 510402, 510403, 510411, 510421, 510422, 510500, 510501, 510502, 510503, 510504, 510521,
                510522,
                510524, 510525, 510600, 510601, 510603, 510623, 510626, 510681, 510682, 510683, 510700, 510701, 510703,
                510704,
                510722, 510723, 510724, 510725, 510726, 510727, 510781, 510800, 510801, 510802, 510811, 510812, 510821,
                510822,
                510823, 510824, 510900, 510901, 510903, 510904, 510921, 510922, 510923, 511000, 511001, 511002, 511011,
                511024,
                511025, 511028, 511100, 511101, 511102, 511111, 511112, 511113, 511123, 511124, 511126, 511129, 511132,
                511133,
                511181, 511300, 511301, 511302, 511303, 511304, 511321, 511322, 511323, 511324, 511325, 511381, 511400,
                511401,
                511402, 511421, 511422, 511423, 511424, 511425, 511500, 511501, 511502, 511521, 511522, 511523, 511524,
                511525,
                511526, 511527, 511528, 511529, 511600, 511601, 511602, 511621, 511622, 511623, 511681, 511700, 511701,
                511702,
                511721, 511722, 511723, 511724, 511725, 511781, 511800, 511801, 511802, 511821, 511822, 511823, 511824,
                511825,
                511826, 511827, 511900, 511901, 511902, 511921, 511922, 511923, 512000, 512001, 512002, 512021, 512022,
                512081,
                513200, 513221, 513222, 513223, 513224, 513225, 513226, 513227, 513228, 513229, 513230, 513231, 513232,
                513233,
                513300, 513321, 513322, 513323, 513324, 513325, 513326, 513327, 513328, 513329, 513330, 513331, 513332,
                513333,
                513334, 513335, 513336, 513337, 513338, 513400, 513401, 513422, 513423, 513424, 513425, 513426, 513427,
                513428,
                513429, 513430, 513431, 513432, 513433, 513434, 513435, 513436, 513437, 520000, 520100, 520101, 520102,
                520103,
                520111, 520112, 520113, 520114, 520121, 520122, 520123, 520181, 520200, 520201, 520203, 520221, 520222,
                520300,
                520301, 520302, 520303, 520321, 520322, 520323, 520324, 520325, 520326, 520327, 520328, 520329, 520330,
                520381,
                520382, 520400, 520401, 520402, 520421, 520422, 520423, 520424, 520425, 522200, 522201, 522222, 522223,
                522224,
                522225, 522226, 522227, 522228, 522229, 522230, 522300, 522301, 522322, 522323, 522324, 522325, 522326,
                522327,
                522328, 522400, 522401, 522422, 522423, 522424, 522425, 522426, 522427, 522428, 522600, 522601, 522622,
                522623,
                522624, 522625, 522626, 522627, 522628, 522629, 522630, 522631, 522632, 522633, 522634, 522635, 522636,
                522700,
                522701, 522702, 522722, 522723, 522725, 522726, 522727, 522728, 522729, 522730, 522731, 522732, 530000,
                530100,
                530101, 530102, 530103, 530111, 530112, 530113, 530121, 530122, 530124, 530125, 530126, 530127, 530128,
                530129,
                530181, 530300, 530301, 530302, 530321, 530322, 530323, 530324, 530325, 530326, 530328, 530381, 530400,
                530401,
                530402, 530421, 530422, 530423, 530424, 530425, 530426, 530427, 530428, 530500, 530501, 530502, 530521,
                530522,
                530523, 530524, 530600, 530601, 530602, 530621, 530622, 530623, 530624, 530625, 530626, 530627, 530628,
                530629,
                530630, 530700, 530701, 530702, 530721, 530722, 530723, 530724, 530800, 530801, 530802, 530821, 530822,
                530823,
                530824, 530825, 530826, 530827, 530828, 530829, 530900, 530901, 530902, 530921, 530922, 530923, 530924,
                530925,
                530926, 530927, 532300, 532301, 532322, 532323, 532324, 532325, 532326, 532327, 532328, 532329, 532331,
                532500,
                532501, 532502, 532522, 532523, 532524, 532525, 532526, 532527, 532528, 532529, 532530, 532531, 532532,
                532600,
                532621, 532622, 532623, 532624, 532625, 532626, 532627, 532628, 532800, 532801, 532822, 532823, 532900,
                532901,
                532922, 532923, 532924, 532925, 532926, 532927, 532928, 532929, 532930, 532931, 532932, 533100, 533102,
                533103,
                533122, 533123, 533124, 533300, 533321, 533323, 533324, 533325, 533400, 533421, 533422, 533423, 540000,
                540100,
                540101, 540102, 540121, 540122, 540123, 540124, 540125, 540126, 540127, 542100, 542121, 542122, 542123,
                542124,
                542125, 542126, 542127, 542128, 542129, 542132, 542133, 542200, 542221, 542222, 542223, 542224, 542225,
                542226,
                542227, 542228, 542229, 542231, 542232, 542233, 542300, 542301, 542322, 542323, 542324, 542325, 542326,
                542327,
                542328, 542329, 542330, 542331, 542332, 542333, 542334, 542335, 542336, 542337, 542338, 542400, 542421,
                542422,
                542423, 542424, 542425, 542426, 542427, 542428, 542429, 542430, 542500, 542521, 542522, 542523, 542524,
                542525,
                542526, 542527, 542600, 542621, 542622, 542623, 542624, 542625, 542626, 542627, 610000, 610100, 610101,
                610102,
                610103, 610104, 610111, 610112, 610113, 610114, 610115, 610116, 610122, 610124, 610125, 610126, 610200,
                610201,
                610202, 610203, 610204, 610222, 610300, 610301, 610302, 610303, 610304, 610322, 610323, 610324, 610326,
                610327,
                610328, 610329, 610330, 610331, 610400, 610401, 610402, 610403, 610404, 610422, 610423, 610424, 610425,
                610426,
                610427, 610428, 610429, 610430, 610431, 610481, 610500, 610501, 610502, 610521, 610522, 610523, 610524,
                610525,
                610526, 610527, 610528, 610581, 610582, 610600, 610601, 610602, 610621, 610622, 610623, 610625, 610626,
                610627,
                610628, 610629, 610630, 610631, 610632, 610700, 610701, 610702, 610721, 610722, 610723, 610724, 610725,
                610726,
                610727, 610728, 610729, 610730, 610800, 610801, 610802, 610821, 610822, 610823, 610824, 610825, 610826,
                610827,
                610828, 610829, 610830, 610831, 610900, 610901, 610902, 610921, 610922, 610923, 610924, 610925, 610926,
                610927,
                610928, 610929, 611000, 611001, 611002, 611021, 611022, 611023, 611024, 611025, 611026, 620000, 620100,
                620101,
                620102, 620103, 620104, 620105, 620111, 620121, 620122, 620123, 620200, 620201, 620300, 620301, 620302,
                620321,
                620400, 620401, 620402, 620403, 620421, 620422, 620423, 620500, 620501, 620502, 620503, 620521, 620522,
                620523,
                620524, 620525, 620600, 620601, 620602, 620621, 620622, 620623, 620700, 620701, 620702, 620721, 620722,
                620723,
                620724, 620725, 620800, 620801, 620802, 620821, 620822, 620823, 620824, 620825, 620826, 620900, 620901,
                620902,
                620921, 620922, 620923, 620924, 620981, 620982, 621000, 621001, 621002, 621021, 621022, 621023, 621024,
                621025,
                621026, 621027, 621100, 621101, 621102, 621121, 621122, 621123, 621124, 621125, 621126, 622600, 622621,
                622623,
                622624, 622625, 622626, 622627, 622628, 622629, 622630, 622900, 622901, 622921, 622922, 622923, 622924,
                622925,
                622926, 622927, 623000, 623001, 623021, 623022, 623023, 623024, 623025, 623026, 623027, 630000, 630100,
                630101,
                630102, 630103, 630104, 630105, 630121, 630122, 630123, 632100, 632121, 632122, 632123, 632126, 632127,
                632128,
                632200, 632221, 632222, 632223, 632224, 632300, 632321, 632322, 632323, 632324, 632500, 632521, 632522,
                632523,
                632524, 632525, 632600, 632621, 632622, 632623, 632624, 632625, 632626, 632700, 632721, 632722, 632723,
                632724,
                632725, 632726, 632800, 632801, 632802, 632821, 632822, 632823, 640000, 640100, 640101, 640104, 640105,
                640106,
                640122, 640181, 640200, 640201, 640202, 640205, 640221, 640300, 640301, 640302, 640323, 640324, 640381,
                640400,
                640401, 640402, 640422, 640423, 640424, 640425, 640500, 640501, 640502, 640521, 640522, 650000, 650100,
                650101,
                650102, 650103, 650104, 650105, 650106, 650107, 650108, 650121, 650200, 650201, 650202, 650203, 650204,
                650205,
                652100, 652101, 652122, 652123, 652200, 652201, 652222, 652223, 652300, 652301, 652302, 652303, 652323,
                652324,
                652325, 652327, 652328, 652700, 652701, 652722, 652723, 652800, 652801, 652822, 652823, 652824, 652825,
                652826,
                652827, 652828, 652829, 652900, 652901, 652922, 652923, 652924, 652925, 652926, 652927, 652928, 652929,
                653000,
                653001, 653022, 653023, 653024, 653100, 653101, 653121, 653122, 653123, 653124, 653125, 653126, 653127,
                653128,
                653129, 653130, 653131, 653200, 653201, 653221, 653222, 653223, 653224, 653225, 653226, 653227, 654000,
                654002,
                654003, 654021, 654022, 654023, 654024, 654025, 654026, 654027, 654028, 654200, 654201, 654202, 654221,
                654223,
                654224, 654225, 654226, 654300, 654301, 654321, 654322, 654323, 654324, 654325, 654326, 659000, 659001,
                659002,
                659003, 659004, 710000, 810000, 820000):
            return False

        return True


if __name__ == '__main__':
    print(IdCard.check("身份证号"))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值