Heim  >  Artikel  >  Web-Frontend  >  Javascript, regulärer Ausdruck zur Überprüfung der Ausweisinformationen

Javascript, regulärer Ausdruck zur Überprüfung der Ausweisinformationen

陈政宽~
陈政宽~Original
2017-06-28 12:51:231364Durchsuche

Oft verwenden wir eine Reihe von regulären Ausdrücken, um festzustellen, ob der vom Benutzer eingegebene Ausweis legal ist. Bevor wir zur Bestimmung reguläre Ausdrücke verwenden, müssen wir zunächst die Ausweisinformationen überprüfen . Einige Validierungsregeln

Oftmals verwenden wir eine Reihe regulärer Ausdrücke, um festzustellen, ob der vom Benutzer eingegebene Ausweis legal ist. Bevor wir reguläre Ausdrücke zur Bestimmung verwenden, müssen wir zunächst den Ausweis überprüfen Informationen. Kennen Sie einige Validierungsregeln:

 1. Die Struktur der Nummer

 Die Bürgeridentitätsnummer ist ein charakteristischer Kombinationscode, der aus einem siebzehnstelligen Körpercode besteht und eine einstellige Prüfcodezusammensetzung. Die Reihenfolge von links nach rechts ist: sechsstelliger Adresscode, achtstelliger Geburtsdatumscode, dreistelliger Sequenzcode und einstelliger Prüfcode.

2. Adresscode (erste sechs Ziffern)

Gibt den Verwaltungsbezirkscode des Landkreises (Stadt, Banner, Bezirk) an, in dem sich der ständige Wohnsitz des Kodierungsobjekts befindet befindet, drücken Sie gb/. Die Bestimmungen von T2260 werden umgesetzt.

 3. Geburtsdatumscode (siebte bis vierzehnte Ziffer)

 Gibt das Jahr, den Monat und den Tag der Geburt des Codierungsobjekts gemäß den Bestimmungen von an gb/T7408 werden keine Trennzeichen zwischen Jahres-, Monats- und Tagescodes verwendet.

 4. Sequenzcode (15. bis 17. Ziffer)

  Dies bedeutet, dass innerhalb des Bereichs, der durch denselben Adresscode, dasselbe Jahr, denselben Monat gekennzeichnet ist, die Gleiche Personen, die am selben Tag geboren wurden, erhalten fortlaufende Nummern, wobei Männern ungerade Nummern und Frauen gerade Nummern zugewiesen werden.

 5. Prüfcode (18. Ziffer)

  Als Prüfcode für die Endnummer wird er von der Zahlenkompilierungseinheit nach einer einheitlichen Formel berechnet, wenn Wenn die Schwanznummer einer Person 0-9 ist, wird X nicht angezeigt. Wenn die Schwanznummer jedoch 10 ist, muss stattdessen X ist die römische Zahl 10. Durch die Verwendung von X anstelle von 10 kann sichergestellt werden, dass der Personalausweis des Bürgers den nationalen Standards entspricht.

Dann kommen Sie zum Hauptthema:

Der erste Schritt besteht darin, die Regeln für die Fehlerberichterstattung zu schreiben:

var Errors = new Array("Verifizierung bestanden!", "ID-Kartennummer hat falsche Ziffern!", "ID-Kartennummer-Geburtsdatum liegt außerhalb des gültigen Bereichs oder enthält ungültige Zeichen!", „Fehler bei der Verifizierung der Ausweisnummer!“, „Identitätsbereich illegal!“);
Nr. 1 Drei Schritte, definieren Sie die Validierungsregeln für den 15-stelligen Personalausweis bzw. die 18-stellige Identität:

Endgültige Version:

var area = { 
        11: "北京", 
        12: "天津", 
        13: "河北", 
        14: "山西", 
        15: "内蒙古", 
        21: "辽宁", 
        22: "吉林", 
        23: "黑龙江", 
        31: "上海", 
        32: "江苏", 
        33: "浙江", 
        34: "安徽", 
        35: "福建", 
        36: "江西", 
        37: "山东", 
        41: "河南", 
        42: "湖北", 
        43: "湖南", 
        44: "广东", 
        45: "广西", 
        46: "海南", 
        50: "重庆", 
        51: "四川", 
        52: "贵州", 
        53: "云南", 
        54: "西藏", 
        61: "陕西", 
        62: "甘肃", 
        63: "青海", 
        64: "宁夏", 
        65: "新疆", 
        71: "台湾", 
        81: "香港", 
        82: "澳门", 
        91: "国外" 
      }

Zum Schluss rufen Sie einfach die Methode direkt auf und das Überprüfungsergebnis wird zurückgegeben.
switch (idcard.length) { 
        case 15: 
          if ((parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0 || ((parseInt(idcard.substr(6, 2)) + 1900) % 100 == 0 && (parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0)) { 
            ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/; //测试出生日期的合法性 
          } else { 
            ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/; //测试出生日期的合法性 
          } 
          if (ereg.test(idcard)) { 
            return Errors[0]; 
          } 
          else { 
            return Errors[2]; 
          } 
          break; 
        case 18: 
          if (parseInt(idcard.substr(6, 4)) % 4 == 0 || (parseInt(idcard.substr(6, 4)) % 100 == 0 && parseInt(idcard.substr(6, 4)) % 4 == 0)) { 
            ereg = /^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/; //闰年出生日期的合法性正则表达式 
          } else { 
            ereg = /^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/; //平年出生日期的合法性正则表达式 
          } 
          if (ereg.test(idcard)) { //测试出生日期的合法性 
            //计算校验位 
            S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7 + (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9 + (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10 + (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5 + (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8 + (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4 + (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2 + parseInt(idcard_array[7]) * 1 + parseInt(idcard_array[8]) * 6 + parseInt(idcard_array[9]) * 3; 
            Y = S % 11; 
            M = "F"; 
            JYM = "10X98765432"; 
            M = JYM.substr(Y, 1); //判断校验位 
            if (M == idcard_array[17]) return Errors[0]; //检测ID的校验位 
            else return Errors[3]; 
          } else return Errors[2]; 
          break; 
        default: 
          return Errors[1]; 
          break; 
      }

Das Obige ist der vom Herausgeber eingeführte reguläre Ausdruck für die JS-Front-End-ID-Karteninformation. Ich hoffe, er wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht pünktlich zu Ihnen. Ich möchte mich auch bei Ihnen allen für Ihre Unterstützung der Script House-Website bedanken!

Das obige ist der detaillierte Inhalt vonJavascript, regulärer Ausdruck zur Überprüfung der Ausweisinformationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn