1. Struktur und Darstellung der ID -Nummer
1. Die Struktur der Zahl
Nach den Bestimmungen zu den Zahlen der Staatsbürgerschaft Identität im Nationalen Standard GB11643-1999 der Volksrepublik China ist die Identitätsnummer der Staatsbürgerschaft ein charakteristischer Kombinationskodex, der aus einem siebzehnstelligen numerischen Ontologie-Code und einem Ein-Ein-Ein--er-Verifizierungscode besteht. Die Anordnung ist von links nach rechts: Sechsstelliger Adresscode, achtstelliger Geburtscode, dreistelliger Sequenzcode und einstelliger Überprüfungscode.
2. Adresscode
Der Kodex der Verwaltungsabteilung des Landkreises (Stadt, Banner, Distrikt), in dem sich der ständige Wohnsitz des Codierungsobjekts befindet, muss gemäß den Bestimmungen von GB/T2260 umgesetzt werden.
3. Geburtscode -Datum
Es zeigt das Jahr, Monat und Tag der Geburt des codierten Objekts an. Es wird gemäß den Bestimmungen von GB/T7408 ausgeführt. Es gibt keinen Trennzeichen zwischen dem Jahr, Monat und Tagescodes.
4. Sequenzcode
Es zeigt an, dass innerhalb des durch denselben Adresscode identifizierten Bereichs die Sequenznummer, die Personen im selben Jahr, Monat und Tag zugeordnet ist. Die ungerade Anzahl des Sequenzcodes wird Männern zugeordnet und sogar Zahlen werden Frauen zugeordnet.
5. Überprüfungscode
(1) Die gewichtete Summenformel für den Ontologiekodex von siebzehn Ziffern
S = Summe (ai * wi), i = 0, ..., 16, erste Summe der ersten 17 Ziffern
AI: Zeigt den Zahlenwert der ID-Kartennummer an der I-ten Position an
WI: repräsentiert den Gewichtungsfaktor an der I-ten Position
7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
(2) Berechnungsmodus
Y = mod (s, 11)
(3) Rufen Sie den entsprechenden Verifizierungscode über das Modul ab
Y: 0 1 2 3 4 5 6 7 8 9 10
Überprüfungscode: 1 0 x 9 8 7 6 5 4 3 2
Das heißt, wenn der Rest als 1 erhalten wird, sollte das letzte Scheckbit P der entsprechende 0 sein.
15-stellige Nummer:
aabbccyymmddxxs
18-stellige Zahl:
aabbccyyyymmddxxsp
2. Adresscode
Die ersten 6 Ziffern der ID-Karte sind administrative Abteilungscodes (als digitale Codes bezeichnet) Beschreibungen (siehe "GB/T 2260-2007 Verwaltungsabteilungskodizes der Volksrepublik China"): Das Prinzip und die Strukturanalyse der Kampagne der Kompilierung dieses digitalen Code adoptieren eine dreischichtige Sechs-Digit-Region. Verwaltungsregionen), Städte (Regionen, autonome Präfekturen, Ligen) und Landkreise (autonome Landkreise, Städte auf Kreisebene, Banner, autonome Banner, Stadtbezirke, Waldgebiete, Spezialbezirke) in meinem Land nach Angaben der Hierarchie.
(1) 1. und 2. Ziffern: Der Kodex der Provinz, in dem Sie sich befinden, repräsentiert eine Provinz, eine autonome Region, eine Gemeinde direkt unter der Zentralregierung und eine spezielle Verwaltungsregion.
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", 50: "Chongqing", 51: "Sichuan", 52: "Guizhou", 53: "Yunnan", 54: "Tibet", 61: "Shaanxi", 62: "Gansu", 63: "Qinghai", 64: "Ningxia", 65: "Xinjiang", 71: "Taiwan", 81: "Hong Kong", 82: "Macao", 91: "Fremd", "Fremd", "Fremd", "Fremd", "Fremd", "Fremd", "Fremd", "Fremd", "Fremd", "Fremd", "}
.
—01 ~ 20, 51 ~ 70 bedeutet eine Stadt, und Gemeinden direkt unter der Zentralregierung sagen 01 eine Stadt, und nach 02 bedeutet ein Vorortbezirk innerhalb der Gerichtsbarkeit der Stadtregierung;
—21 ~ 50 bedeutet Regionen, autonome Präfekturen und Allianzen;
—90 repräsentiert den Zusammenfassungskodex der Verwaltungsabteilungen auf Bezirksebene direkt unter der Provinz (autonome Region).
(3) 5. und 6. Ziffern: Der Code (City) der Präfektur-Bezirk (Stadt), das auf einen Landkreis, ein autonomes Landkreis, ein Stadtebene, das Banner, das autonome Banner, ein Gemeindeviertel, das Gebiet des Waldes und das Sonderbezirk hinweist.
—01 ~ 20 bedeutet Städte auf Bezirksebene unter der Zuständigkeit der Stadt, Region (autonome Präfekturen, Meilen) unter der Zuständigkeit von Städten auf Bezirksebene, kommunalen Sonderbezirken und Verwaltungsabteilungen auf Bezirksebene direkt unter der Provinz (autonomen Region). 01 bedeutet normalerweise den Gerichtszusammenfassungscode;
—21 ~ 80 bedeutet ein Landkreis, ein autonomes Landkreis, ein Banner, ein autonomes Banner, ein Waldgebiet und eine regionale Spezialzone;
—81 ~ 99 bedeutet, dass die Provinz (autonome Region) eine Stadt auf Bezirksebene unter ihrer Zuständigkeit hat.
3. Andere
15-stellige ID-Nummer:
Die 7. und 8. Ziffern sind das Geburtsjahr (zweistellige Ziffern, dargestellt durch die letzten beiden Ziffern des Jahres).
Nr. 9 und 10 sind der Geburtsmonat.
Der 11. und 12. repräsentiert das Geburtsdatum.
Die 13. und 14. Bits sind die sequentiellen Codes, dies ist eine Zufallszahl.
Die 15. Ziffer repräsentiert das Geschlecht, die ungerade Zahl ist männlich und die gleichmäßige Zahl ist weiblich.
18-stellige ID-Nummer:
Die 7., 8., 9. und 10. sind das Geburtsjahr (vier Ziffern).
Nr. 11 und 12 sind die Geburtsmonate.
Der 13. und 14. repräsentiert das Geburtsdatum.
Die 15. und 16. Bit sind die Sequenzcodes.
Die 17. Position repräsentiert Geschlecht, ungerade Zahlen sind männlich und sogar Zahlen weiblich.
Das letzte Bit ist das Scheckbit.
4. JS -Codebeispiel
var idCardnoutil = { /*Provinz, Stadt Code Tabelle* / ProvinceandCitys: {11: "Peking", 12: "Tianjin", 13: "Hebei", 14: "Shanxi", 15: "Inner" Mongolei ", 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:" Fremd "}, /*Jeder Gewichtungsfaktor* /Powers: [" 7 "," 9 "," 10 "," 5 "," 8 "," 4 "," 2 "," 1 "," 6 "," 3 "," 7 "," 9 "," 10 "," 10 "," 8 "," 8 ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", 18th calculating code*/ parityBit: ["1","0","X","9","8","7","6","5","4","3","2"], /*Genders*/ Genders: {male:"Male",female:"Female"}, /*Check Address Code*/ checkAddressCode: function(addressCode){ var check = /^..a1-9 weibliche/d <5}$/.test(addressCode); if (! check) return false; if (idcardnoutil.provinCinandCitys [parseInt (adresscode.substring (0,2))]) {return true; } else {return false; }},/*Date Code*/checkbirthdayCode: function (birdaycode) {var check = /^=-9 ]/Der {3}( 0 2-9 weibliche ))| (0-2- ))( 0 2-9 weibliches )( 21-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 = neues Datum (YJJJ, MM-1, DD); if (xdata> new Date ()) {return false; // Der Geburtstag kann nicht größer sein als das aktuelle Datum} else if ((xdata.getingfullyear () == YYYY) && (xdata.getMonth () == mm - 1) && (xdata.getDate () == Dd)) {{zurücksagen; } else {return false; }}, /*Kalibrierungscode berechnen* / getParitybit: function (idCardno) {var id17 = idCardno.substring (0,17); /*Gewichtet*/ var power = 0; für (var i = 0; i <17; i ++) {power+= parseInt (id17.charat (i), 10) * parseInt (idcardnoutil.powers [i]); } /*Modell* / var mod = power % 11; return idCardnoutil.Paritybit [mod]; }, /*Überprüfen Sie den Check -Code* / checkParitybit: function (idCardno) {var paritybit = idCardno.charat (17) .ToUpperCase (); if (idCardnoutil.getParitybit (idCardno) == paritybit) {return true; } else {return false; }},/*Überprüfen Sie die 15-Bit- oder 18-Bit-ID-Nummer*/checkIdCardno: function (idCardno) {// Grundlegende Überprüfung von 15-bit- und 18-bit id number var check = /^/des15 }—(/Dery7}(/d|x|x)) if (! check) return false; // Die Länge von 15-Bit oder 18-Bit if (idCardno.length == 15) {return idCardnoutil.Check15IdCardno (idCardno); } else if (idCardno.length == 18) {return idCardnoutil.Check18IdCardno (idCardno); } else {return false; }}. /^ 2-9 weibliche/der 7}(0-2-1-9 weibliche ))|(1 -0-2 weibliches ))( 0 0-1-9 weibliches)|( 21-2 weibliches · 0-9 weibliches )) (3®-1)); if (! check) return false; // Adresscode var adresscode = idCardno.substring (0,6) prüfen; check = idCardnoutil.CheckaddressCode (adresscode); if (! check) return false; var birddaycode = '19' + idCardno.substring (6,12); // Date Code return idCardnoutil.CheckBirthdayCode (BirdayCode); }. /^ · 1-9]/d {5 · 1-9]/Der (3}( 0 für 9-9 weibliche) )(1-0-2]))( 0-21-9])|( 21-2] 0-9] )(3-0-1 ])/d {3}(/d|x Tex); if (! check) return false; // Überprüfen Sie den Adresscode var adresscode = idCardno.substring (0,6); check = idCardnoutil.CheckaddressCode (adresscode); if (! check) return false; // Datum des Datums für den Code überprüfen var biredaycode = idCardno.substring (6,14); check = idCardnoutil.CheckBirthdayCode (BirdayCode); if (! check) return false; //Checkcardnoutil.CheckParitybit(idcardno); }, formatDatecn: function (tag) {var yyyy = tag.substring (0,4); var mm = tag.substring (4,6); var dd = tag.substring (6); return yjyy + '-' + mm + '-' + dd; }, // Informationen erhalten GetIdCardInfo: Funktion (idCardno) {var idCardInfo = {Geschlecht: "", // Gender Geburtstag: "" // Geburtsdatum (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-Bit bis 15-Bit* / 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; }}. var paritybit = idCardnoutil.getParitybit (ID17); Return ID17 + Paritybit; } else if (idCardno.length == 18) {return idCardno; } else {return null; }}}; // Identitätskartennummer Überprüfung jQuery.validator.addMethod ("idCardno", Funktion (Wert, Element) {return this.optional (Element) || idCardnoutil.CheckidCardno (Wert);}, "Bitte eine gültige ID -Nummer angeben."); // ID -Karteninformationen abrufen var idCardInfo = idCardnoutil.getIdCardInfo (idCardno); alert (idcardInfo.GerDer + "|" + idcardInfo.birthday); HINWEIS: Beim Eingeben und Bestimmen, ob dieselbe ID-Karte bereits in der Datenbank (1) vorhanden ist, wenn Sie eine 15-Bit-ID eingeben: Finden Sie zuerst heraus, ob die 15-Bit-ID existiert. Wenn es nicht vorhanden ist, müssen Sie die 15-Bit-ID-Karte in eine 18-Bit-ID-Karte umwandeln. Wenn es immer noch nicht existiert, können Sie das System eingeben. (2) Wenn Sie eine 18-Bit-ID eingeben: Finden Sie zuerst heraus, ob die 18-Bit-ID existiert. Wenn es nicht vorhanden ist, müssen Sie die 18-Bit-ID-Karte in eine 15-Bit-ID-Karte umwandeln. Wenn es immer noch nicht existiert, können Sie das System eingeben. Wenn Sie die entsprechende 15-Bit-ID-Karte finden, müssen Sie den 15-Bit auf 18-Bit aktualisieren.Das obige einfache Beispiel für die JS-Überprüfung von 15-Bit- und 18-Bit-ID-Karten ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.