Kopieren Sie den folgenden Code in das Projekt, rufen Sie direkt die checkIdcard-Methode auf, übergeben Sie die ID-Nummer, und prüfen Sie, ob sie "Verified!" zurückgibt. Wenn sie "Verified!" zurückgibt, dann ist die ID-Nummer legal.
#GoogleAD
function checkIdcard(idcard) {
var Errors = new Array(
"Verifizierung bestanden!" ,
"Falsche Ziffern der ID-Nummer!" ,
"Geburtsdatum der ID-Nummer liegt außerhalb des zulässigen Bereichs oder enthält unzulässige Zeichen!" ,
"Fehler bei der Überprüfung der Personalausweisnummer!" , "Ausweisnummer-Überprüfungsfehler!" , "Ausweisnummer-Überprüfungsfehler!
"Bereich des Personalausweises ist illegal!"
);
var area = { 11: "Beijing", 12: "Tianjin", 13: "Hebei", 14: "Shanxi", 15: "Innere 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: "Tibet", 61: "Shaanxi", 62: "Gansu", 63: "Qinghai", 64: " Ningxia", 65: "Xinjiang", 71: "Taiwan", 81: "Hongkong", 82: "Macau", 91: "Übersee" }
var retflag = false;
var idcard, Y, JYM.
var idcard, Y, JYM; var S, M; var idcard_array = Y, JYM
var idcard_array = new Array();
idcard_array = idcard.split("");
// Bereichstest
if (area[parseInt(idcard.substr(0, 2))] == null) return Errors[4];
// Prüfung der Ziffern der Identitätsnummer und des Formats
switch (idcard.length) {
Fall 15.
if ((parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0 | ((parseInt(idcard.substr(6, 2)) + 1900) % 100 == 0 && (parseInt(idcard.substr(6, 2)) + 1900) % 0 == 0); //Prüfung der Anzahl der Ziffern und des Formats der ID-Nummer.
100 == 0 && (parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0)) {
ereg = /^[1-9][0-9]{5}[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}$/;//Überprüfung der Rechtmäßigkeit des Geburtsdatums
} sonst {
ereg = /^[1-9][0-9]{5}[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}$/;//Überprüfung der Rechtmäßigkeit des Geburtsdatums
}
if (ereg.test(idcard))
return Errors[0];
sonst {
return Errors[2];
}
break; case 18: return Errors[0]; else { return Errors[2]; }
Fall 18.
//18-stellige Erkennung der Identitätsnummer
//Legitimitätsprüfung für Geburtsdatum
//leap year month day:((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]))
//PingYuMoDay:((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]))
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[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]$/;//zulässiger regulärer Ausdruck für Schaltjahr-Geburtsdaten
} sonst {
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}[0-9Xx]$/;//Legitimität des regulären Ausdrucks für ein pauschales Geburtsdatum
}
if (ereg.test(idcard)) { //Test der Rechtmäßigkeit des Geburtsdatums
//Berechnen Sie die Prüfziffer
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 = "10X98
JYM = "10X98765432";
M = JYM.substr(Y, 1); // Beurteilung des Paritätsbits
if (M == idcard_array[17]) return Errors[0]; //Prüfziffer der ID ermitteln
sonst return Errors[3];
}
sonst return Errors[2];
break;
default.
return Errors[1]; } else return Errors[2]; break; default.
break; default: return Fehler[1]; break
}
}
Originalinhalt, wiedergegeben mit Quellenangabe: Intelligente Werkzeugsammlung