1. Structure et représentation du numéro d'identification
1. La structure du nombre
Selon les dispositions sur les numéros d'identité de citoyenneté dans la norme nationale GB11643-1999 de la République populaire de Chine, le numéro d'identité de citoyenneté est un code de combinaison caractéristique, composé d'un code d'ontologie numérique à dix-sept chiffres et d'un code de vérification un. L'ordre d'arrangement est de gauche à droite: code d'adresse à six chiffres, date de code de naissance à huit chiffres, code de séquence à trois chiffres et code de vérification à un chiffre.
2. Code d'adresse
Le code de division administratif du comté (ville, bannière, district) où est situé la résidence permanente de l'objet codant doit être mis en œuvre conformément aux dispositions de GB / T2260.
3. Date de code de naissance
Il indique l'année, le mois et le jour de la naissance de l'objet codé. Il doit être exécuté conformément aux dispositions de GB / T7408. Il n'y a pas de séparateur entre les codes de l'année, du mois et du jour.
4. Code de séquence
Il indique que dans la zone identifiée par le même code d'adresse, le numéro de séquence attribué aux personnes nées la même année, le même mois et le même jour. Le nombre impair du code de séquence est attribué aux hommes et même des chiffres sont affectés aux femmes.
5. Code de vérification
(1) la formule de somme pondérée pour le code de l'ontologie de dix-sept chiffres
S = sum (ai * wi), i = 0, ..., 16, première somme de poids des 17 premiers chiffres
AI: indique la valeur du nombre du numéro de carte d'identité en position i-tth
WI: représente le facteur de pondération en position i-tth
7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
(2) mode de calcul
Y = mod (s, 11)
(3) Obtenez le code de vérification correspondant via le module
Y: 0 1 2 3 4 5 6 7 8 9 10
Code de vérification: 1 0 x 9 8 7 6 5 4 3 2
C'est-à-dire que si le reste est obtenu comme 1, le dernier bit de contrôle P devrait être le 0 correspondant.
Numéro à 15 chiffres:
aabbccyymmddxx
Numéro à 18 chiffres:
aabbccyyyymmddxxsp
2. Code d'adresse
Les 6 premiers chiffres de la carte d'identité sont des descriptions de codes de division administrative (appelés codes numériques) (reportez-vous à "GB / T 2260-2007 codes de division administrative de la République populaire de Chine"): l'analyse du principe et de la structure de la compilation de ce code numérique adopte une structure hiérarchique à six chiffres à trois bandes, qui représente les prestataires (les régions autonomes (MunIpiCalties, qui représentent le gouvernement des provinces (les régions autonomes, les régions autonomes, les régions autonomes, les régions autonomes, les régions autonomes, les régions autonomes (Municicals, qui représentent les Provical Régions administratives spéciales), villes (régions, préfectures autonomes, ligues) et comtés (comtés autonomes, villes au niveau du comté, bannières, bannières autonomes, districts municipaux, zones forestières, districts spéciaux) dans mon pays selon la hiérarchie.
(1) 1er et 2e chiffres: le code de la province où vous êtes situé, représentant une province, une région autonome, une municipalité directement sous le gouvernement central et une région administrative spéciale.
Provincial and municipal code table: { 11: "Beijing", 12: "Tianjin", 13: "Hebei", 14: "Shanxi", 15: "Inner Mongolia", 21: "Liaoning", 22: "Jilin", 23: "Heilongjiang", 31: "Shanghai", 32: "Jiangsu", 34: "Anhui", 35: "Fujian", 36: "Jiangxi", 37: "Shandong", 41: "Henan", 42: "Hubei", 43: "Hunan", 44: "Guangdong", 45: "Guangxi", 46: "Hainan" "Yunnan", 54: "Tibet", 61: "Shaanxi", 62: "Gansu", 63: "Qinghai", 64: "Ningxia", 65: "Xinjiang", 71: "Taiwan", 81: "Hong Kong", 82: "Macao", 91: "Astranger"}
(2) Les 3e et 4e chiffres: le code de la ville de niveau provincial (comté), qui représente le code sommaire des districts et des comtés sous la juridiction de la ville, de la région, de la préfecture autonome, de l'alliance et de la municipalité directement sous le gouvernement central, et le code sommaire de la région administrative du comté).
―01 ~ 20, 51 ~ 70 signifie une ville, et les municipalités directement sous le gouvernement central disent que 01 signifie une ville, et après 02 signifie un comté de banlieue au sein de la juridiction du gouvernement municipal;
―21 ~ 50 signifie régions, préfectures autonomes et alliances;
―90 représente le code sommaire des divisions administratives au niveau du comté directement sous la province (région autonome).
(3) 5e et 6e chiffres: le code du comté de préfecture (ville), indiquant un comté, un comté autonome, une ville au niveau du comté, une bannière, une bannière autonome, un district municipal, une zone forestière et un district spécial.
―01 ~ 20 signifie des villes au niveau du comté sous la juridiction de la ville, région (préfectures autonomes, ligues) sous la juridiction des villes au niveau du comté, des districts spéciaux municipaux et des divisions administratives au niveau du comté directement sous la province (région autonome). 01 signifie généralement le code de résumé de la juridiction;
―21 ~ 80 signifie un comté, un comté autonome, une bannière, une bannière autonome, une zone forestière et une zone spéciale régionale;
―81 ~ 99 signifie que la province (région autonome) a une ville au niveau du comté sous sa juridiction.
3. Autres
Numéro d'identification à 15 chiffres:
Les 7e et 8e chiffres sont l'année de naissance (deux chiffres, représentés par les deux derniers chiffres de l'année).
Les n ° 9 et 10 sont le mois de naissance.
Les 11e et 12e représentent la date de naissance.
Les 13e et 14e bits sont les codes séquentiels, il s'agit d'un nombre aléatoire.
Le 15ème chiffre représente le sexe, le nombre impair est un homme et le nombre pair est une femme.
Numéro d'identification à 18 chiffres:
Les 7e, 8e, 9e et 10e sont l'année de naissance (quatre chiffres).
Les n ° 11 et 12 sont les mois de naissance.
Les 13e et 14e représentent la date de naissance.
Les 15e et 16e bits sont les codes de séquence.
La 17e position représente le sexe, les nombres impairs sont des hommes et même les nombres sont des femmes.
Le dernier bit est le bit de contrôle.
4. Exemple de code JS
var idcardnoutil = {/ * Province, Tableau de code municipal * / ProvinceAndCitys: {11: "Beijing", 12: "Tianjin", 13: "Hebei", 14: "Shanxi", 15: "Inter Mongolie ", 21:" Liaoning ", 22:" Jilin ", 23:" Heilongjiang ", 31:" Shanghai ", 32:" Jiangsu ", 33:" Zhejiang ", 34 : "Anhui", 35: "Fujian", 36: "Jiangxi", 37: "Shandong", 41: "Henan", 42: "Hubei", 43: "Hunan", 44: "Guangdong", 45: "Guangxi", 46: "Hainan", 50: "Chongqing", 51: "Sichuan", 52: "Guizhou", 53: "Yunnan", 54: "Tib et ", 61:" Shaanxi ", 62:" Gansu ", 63:" Qinghai ", 64:" Ningxia ", 65:" Xinxia ", 71:" Taiwan ", 81:" Hong Kong ", 82:" Macao ", 91:" Afforeux "}, / * Chaque facteur de pondération * / Powers: [" 7 "," 9 "," 10 "," 5 "," 8 "," 4 "," 2 "," 1 "," 6 "," 3 "," 7 "," 9 "," 10 "," 5 "," 8 "," 4 "," "" "], / * no. 18th Calcul Code * / Paritybit: ["1", "0", "x", "9", "8", "7", "6", "5", "4", "3", "2"], / * Genders * / Genders: {mâle: "masculin", feme /^_1-9 if (! check) return false; if (idcardnoutil.provinerAndCitys [paSeInt (adresse Address.SubString (0,2))]) {return true; } else {return false; }}, / * Cocher le code de date * / CheckBirThdayCode: function (BirdayCode) {var check = /^@1-9/d /d }(0@1-9 .) 00-2. if (! check) return false; var yyyy = parseInt (birdaycode.substring (0,4), 10); var mm = parseInt (BirdayCode.Substring (4,6), 10); var dd = parseInt (BirdayCode.Substring (6), 10); var xdata = nouvelle date (yyyy, mm-1, dd); if (xdata> new Date ()) {return false; // L'anniversaire ne peut pas être supérieur à la date actuelle} else if ((xdata.getlyear () == yyyy) && (xdata.getMonth () == mm - 1) && (xdata.getDate () == dd)) {return true; } else {return false; }}, / * Calculer le code d'étalonnage * / GetParityBit: function (idcardno) {var id17 = idcardno.substring (0,17); / * Pondéré * / var puissance = 0; pour (var i = 0; i <17; i ++) {Power + = paSeInt (id17.charat (i), 10) * parseInt (idcardnoutil.powers [i]); } / * Modèle * / var mod = puissance% 11; return idcardnoutil.parityBit [mod]; }, / * Vérifiez le code de contrôle * / CheckParityBit: fonction (idcardno) {var parityBit = idcardno.charat (17) .toupperase (); if (idcardnoutil.getParityBit (idcardno) == pailyBit) {return true; } else {return false; }}, / * Vérifiez le numéro d'identification 15 bits ou 18 bits * / CheckidCardno: fonction (idcardno) {// Vérification de base du numéro de 1 bit et 18 bits var vérifie = /^/d{15 }|(/d17 }(/d|x|x)$/.Test(idCardno); if (! check) return false; // juge la longueur à 15 bits ou 18 bits if (idcardno.length == 15) {return idcardnoutil.check15idcardno (idcardno); } else if (idcardno.length == 18) {return idcardnoutil.check18idcardno (idcardno); } else {return false; }}, // Vérifiez le numéro de numéro d'identification à 15 chiffres. /^_1-9 DMA/D /d }( ([email protected] ISCHAGE)|(1_0-2 :)(0 Cependant1-9. '' .1-2. if (! check) return false; // Vérifier le code d'adresse var adresscode = idcardno.SubString (0,6); check = idcardnoutil.CheckAddressCode (AddressCode); if (! check) return false; var BirdDayCode = '19' + idcardno.Substring (6,12); // Vérifier le code de date Retour idCardnoutil.CheckBirthdayCode (BirdayCode); }, // Vérifiez le numéro de numéro d'identification à 18 chiffres18idCardno: fonction (idcardno) {// Vérification de format de base du numéro d'identification à 18 chiffres var chèque = /^_1-9 DMAD /D /5 }@1-9 DMA/D /d }(0@1-9 :)|(1_.0-2 .) qu'est-ce qui est if (! check) return false; // Vérifiez le code d'adresse var adresscode = idcardno.substring (0,6); check = idcardnoutil.CheckAddressCode (AddressCode); if (! check) return false; // Vérifier le code de date var birddaycode = idcardno.Substring (6,14); check = idcardnoutil.CheckBirthdayCode (BirdayCode); if (! check) return false; //Checkcardnoutil.checkparityBit(idcardno); }, formatdatecn: function (day) {var yyyy = day.substring (0,4); var mm = day.substring (4,6); var dd = day.substring (6); return yyyy + '-' + mm + '-' + dd; }, // obtenir des informations getIdCardinfo: function (idcardno) {var idCardiNfo = {Gender: "", // anniversaire de genre: "" // date de naissance (yyyy-mm-dd)}; if (idcardno.length == 15) {var aday = '19' + idcardno.substring (6,12); idCardinfo.Birthday = idcardnoutil.formatedatecn (aday); if (parseInt (idcardno.charat (14))% 2 == 0) {idCardinfo.gender = idcardnoutil.genders.female; } else {idCardinfo.gender = idcardnoutil.genders.male; }} else if (idcardno.length == 18) {var aday = idcardno.substring (6,14); idCardinfo.Birthday = idcardnoutil.formatedatecn (aday); if (parseInt (idcardno.charat (16))% 2 == 0) {idCardinfo.gender = idcardnoutil.genders.female; } else {idCardinfo.gender = idcardnoutil.genders.male; }} return idCardInfo; }, / * 18 bits à 15 bits * / getID15: function (idcardno) {if (idcardno.length == 15) {return idCardno; } else if (idcardno.length == 18) {return idcardno.substring (0,6) + idcardno.substring (8,17); } else {return null; }}, / * 15 bits à 18 bits * / getID18: function (idcardno) {if (idcardno.length == 15) {var id17 = idcardno.substring (0,6) + '19' + idcardno.substring (6); var parityBit = idcardnoutil.getParityBit (id17); return id17 + pailybit; } else if (idcardno.length == 18) {return idcardno; } else {return null; }}}. // obtenez des informations sur la carte d'identité var idCarDinfo = idcardnoutil.getIdCardinfo (idcardno); alert (idcardinfo.gender + "|" + idCardinfo.birthday); Remarque: lors de la saisie et de la détermination de la même carte d'identité existe déjà dans la base de données (1) si vous entrez un ID 15 bits: Découvrez d'abord si l'ID 15 bits existe. S'il n'existe pas, vous devez convertir la carte d'identité 15 bits en une carte d'identité 18 bits. S'il n'existe toujours pas, vous pouvez saisir le système. (2) Si vous entrez dans un identifiant 18 bits: découvrez d'abord si l'ID 18 bits existe. S'il n'existe pas, vous devez convertir la carte d'identité 18 bits en une carte d'identité 15 bits. S'il n'existe toujours pas, vous pouvez saisir le système. Si vous trouvez la carte d'identité 15 bits correspondante, vous devez mettre à jour le 15 bits à 18 bits.L'exemple simple ci-dessus de la vérification JS des cartes d'identité 15 bits et 18 bits est tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.