Wenn wir eine Internet -Website erstellen, verwenden wir unsere ID -Nummer häufig bei der Registrierung personenbezogener Daten. Wir müssen unsere ID-Karte überprüfen, sonst passieren andere sie, indem sie einfach eine Nummer eingeben, wodurch Sie das Gefühl haben, dass diese Website sehr scheißgegeben ist.
Es gibt Regeln für die ID -Nummer.
Struktur und Form
1. Die Struktur der Zahl
Die Staatsbürgerschaftsnummer ist ein Feature-Kombinationscode, der aus einem siebzehnstelligen Ontologiecode und einem einstelligen Überprüfungscode 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
Nach den ersten siebzehnstelligen numerischen Codes berechnet der Verifizierungscode nach dem ISO 7064: 1983.MOD 11-2 Verifizierungscode.
Berechnungsmethode
1. Multiplizieren Sie die 17-stellige Anzahl der vorherigen ID-Nummer mit verschiedenen Koeffizienten. Die Koeffizienten von der ersten Position zur 17. Position sind: 7-9-10-5-8-4-2-1-6-3-7-7-10-5-8-4-2.
2. Fügen Sie das Ergebnis des Multiplizierens dieser 17-stelligen Zahlen und Koeffizienten hinzu.
3.. Verwenden Sie die Addition und teilen Sie sich um 11, um zu sehen, was der Rest ist?
4. Der Rest kann nur 11 Zahlen haben: 0-1-2-3-4-5-6-7-8-9-10. Die Anzahl der letzten ID-Karte ist 1-0-X-9-8-7-6-5-4-3-2.
5. Aus dem obigen wissen Sie, dass die 18. Ziffer der ID -Karte, wenn der Rest 3 ist, die 18. Ziffer der ID -Karte angezeigt wird. Wenn die entsprechende Zahl 2 ist, ist die letzte Anzahl der ID -Karte die römische Ziffer x.
Zum Beispiel: Die ID -Nummer eines Mannes beträgt [53010219200508011x]. Sehen wir uns an, ob diese ID -Karte eine rechtliche ID -Karte ist.
First we get the sum of the product of the first 17 bits [(5*7)+(3*9)+(0*10)+(1*5)+(0*8)+(2*4)+(1*2)+(9*1)+(2*6)+(0*3)+(0*7)+(5*9)+(0*10)+(8*5)+(0*8)+(1*4)+(1*2)] is 189 und dann 189 durch 11 ist 189/11 = 17 ---- 2, dh der Rest der Zahlen sind 2.. Schließlich können Sie durch die entsprechenden Regeln wissen, dass der Überprüfungscode, der dem Rest 2 entspricht, X ist. Daher kann festgestellt werden, dass dies die korrekte ID-Nummer ist.
Das obige ist aus Baidu -Enzyklopädie ausgewählt.
Dies ist ein verwandtes Informationsbild, das online gefunden wurde.
Basierend auf bekannten Informationen können wir die interne Implementierung dieser Methode in JS schreiben. Die erste 17-Bit-Überprüfung ist einfacher zu implementieren, daher werde ich nicht viel sagen und mich auf den Verifizierungscode der letzten Ziffer konzentrieren.
Die Codekopie lautet wie folgt:
// ID -Nummer Überprüfung
Funktion ISIDCard (Cardid) {
// Identitätskarte reguläre Ausdruck (18 Bit)
var isidcard2 =/^[1-9]/d {5} (19/d {2} | [2-9]/d {3}) ((0/d) | (1 [0-2])) (([0 | 1 | 2]/d) |
var stard = "10x98765432"; // die Anzahl der letzten ID -Karte
var First = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; // 1-17 Koeffizient
var sum = 0;
if (! ISIDCARD2.TEST (CARDID)) {
false zurückgeben;
}
var Jahr = Cardid.substr (6, 4);
var monat = cardid.substr (10, 2);
var tag = cardid.substr (12, 2);
var birthday = cardid.substr (6, 8);
if (birthday! = DateToString (neues Datum (Jahr + '/' + Monat + '/' + Tag))) {// Überprüfen Sie, ob das Datum legal ist
false zurückgeben;
}
für (var i = 0; i <cardid.length - 1; i ++) {
sum += cardid [i] * zuerst [i];
}
var result = sum % 11;
var last = Stard [Ergebnis]; // Die letzte ID -Nummer berechnet
if (Cardid [Cardid.length - 1] .ToUppercase () == last) {
zurückkehren;
} anders {
false zurückgeben;
}
}
// Datum der Zeichenfolge Rückgabedatum 2008080808
Funktion DateToString (Datum) {
if (Datum des Datums von Datum) {
var yeal = Datum.GetingFoyear ();
var monat = date.getMonth () + 1;
Monat = Monat <10? '0' + Monat: Monat;
var day = date.getDate ();
Tag = Tag <10? '0' + Tag: Tag;
Rückkehrjahr + Monat + Tag;
}
zurückkehren '';
}
Hier werden nur 18-stellige ID-Karten überprüft, und 15-stellige ID-Karten der ersten Generation können nicht verwendet werden.
Hier überprüfen wir auch die Rechtmäßigkeit von Daten wie illegale Daten wie 0230, 0431, und die Überprüfung wird nicht verabschiedet.
Wir können diese Methode auch zu jQuery -Validierung hinzufügen, um eine einfache Überprüfung zu erhalten.
Schreiben Sie eine benutzerdefinierte jQuery Validate -Überprüfungsmethode
Die Codekopie lautet wie folgt:
// ID -Nummer Überprüfung
JQuery.validator.addMethod ("ISIDCARD",
Funktion (Wert, Element) {
Gibt this.Optional (Element) || (ISIDCard (Wert));
},
"Identitätskartennummer ist illegal!");
Lassen Sie uns eine einfache Demo haben, um zu sehen, wie es funktioniert.
Die Codekopie lautet wie folgt:
<! DocType html>
<html>
<kopf>
<meta http-äquiv = "content-type" content = "text /html; charset = utf-8" />
<title>
ID -Nummer Überprüfung
</title>
<script src = "http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js">
</script>
<script src = "http://www.w3cschool.cc/try/demo_source/static/js/jquery.validate.js">
</script>
<script type = "text/javaScript">
$ (function () {
$ ("#Form1"). validate ({{
Regeln: {
txtidcard: "isidcard"
}
});
});
// ID -Nummer Überprüfung
Funktion ISIDCard (Cardid) {
// Identitätskarte reguläre Ausdruck (18 Bit)
var isidcard2 =/^[1-9]/d {5} (19/d {2} | [2-9]/d {3}) ((0/d) | (1 [0-2])) (([0 | 1 | 2]/d) |
var stard = "10x98765432"; // die Anzahl der letzten ID -Karte
var First = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; // 1-17 Koeffizient
var sum = 0;
if (! ISIDCARD2.TEST (CARDID)) {
false zurückgeben;
}
var Jahr = Cardid.substr (6, 4);
var monat = cardid.substr (10, 2);
var tag = cardid.substr (12, 2);
var birthday = cardid.substr (6, 8);
if (birthday! = DateToString (neues Datum (Jahr+'/'+Monat+'/'+Tag))) {// Überprüfen Sie, ob das Datum legal ist
false zurückgeben;
}
für (var i = 0; i <cardid.length - 1; i ++) {
sum += cardid [i] * zuerst [i];
}
var result = sum % 11;
var last = Stard [Ergebnis]; // Die letzte ID -Nummer berechnet
if (Cardid [Cardid.length - 1] .ToUppercase () == last) {
zurückkehren;
} anders {
false zurückgeben;
}
}
// Datum der Zeichenfolge Rückgabedatum 2008080808
Funktion DateToString (Datum) {
if (Datum des Datums von Datum) {
var yeal = Datum.GetingFoyear ();
var monat = date.getMonth () + 1;
Monat = Monat <10? '0' + Monat: Monat;
var day = date.getDate ();
Tag = Tag <10? '0' + Tag: Tag;
Rückkehrjahr + Monat + Tag;
}
zurückkehren '';
}
// jQuery Validieren Sie die Überprüfung der ID -Nummer
JQuery.validator.addMethod ("ISIDCARD",
Funktion (Wert, Element) {
Gibt this.Optional (Element) || (ISIDCard (Wert));
},
"Identitätskartennummer ist illegal!");
</script>
</head>
<body>
<form id = "Form1" methode = "get" action = "">
<input type = "text" id = "txtidcard" name = "txtidcard" />
<p>
<input type = "suruging" value = "sureichen" />
</p>
</form>
</body>
</html>
Überprüfen Sie mit der ID -Nummer 53010219200508011x auf Baidu Encyclopedia
Überprüfung kann übergeben werden. Versuchen Sie, X auf 0 zu wechseln
Wenn die Überprüfung fehlschlägt, ist die von uns geschriebene Überprüfungsmethode erfolgreich! Wenn Sie es nicht glauben, verwenden Sie Ihre ID -Nummer. Es stellt sich heraus, dass ich JS verwendet habe, um die ID -Nummer so einfach zu überprüfen.
Das obige dreht sich alles um diesen Artikel, ich hoffe es gefällt euch.