Kopieer de volgende code naar het project, bel direct de checkIdcard-methode, geef het ID-nummer door en als u "Verificatie doorgegeven!" retourneert, betekent dit dat het ID-nummer legaal is.
# GoogleAD #
Functie checkIdcard(idcard) {
Var Fouten = nieuwe array (
"Verificatie geslaagd!",
"Het aantal ID-kaartnummers is verkeerd!",
"De geboortedatum van het ID-kaartnummer is buiten bereik of bevat illegale karakters!",
"ID-nummer verificatiefout!",
"ID-kaartgebied is illegaal!"
);
Var area = { 11: "Beijing", 12: "Tianjin", 13: "Hebei", 14: "Shanxi", 15: "Binnen-Mongoli?", 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: "Hong Kong", 82: "Macau", 91: "Foreign"}
Var retflag = false;
Var idcard, Y, JYM;
Var S, M;
Var idcard_array = nieuwe array ();
Idcard_array = idcard.split("");
// Regionale inspectie
Als (area[parseInt(idcard.substr(0, 2)] = = null) fouten retourneren [4];
// Identiteitsnummer en formaatcontrole
Schakelaar (idcard. lengte) {
Hoesje 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}[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}$/;// Test de wettigheid
Van de geboortedatum} anders {
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}$/;// Test de wettigheid van de geboortedatum
}
If (ereg.test(idcard))
Terugkeerfouten [0];
Anders {
Terugkeerfouten [2];
}
Breken;
Hoesje 18:
// Detectie van 18-cijferig identificatienummer
// De legaliteitscontrole van de geboortedatum
// Schrikkeljaar, maand, dag :((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]))))
// Jaar, maand en dag :((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]))
Als (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]$/;// Reguliere expressie
Voor legaliteit van geboortedatum in schrikkeljaar} elders {
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]$/;// Reguliere expressie
Voor de legaliteit van de geboortedatum in het normale jaar}
If (ereg.test(idcard)) {// Test de wettigheid
Van geboortedatum // Bereken controlecijfer
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);// Beoordeel de check-bit
If (M = = idcard_array[17]) Fouten retourneren [0]; // Controleer bit
Anders fouten retourneren [3] voor het detecteren van ID;
}
Anders fouten retourneren [2];
Breken;
Standaard:
Terugkeerfouten [1];
Breken;
}
}
Originele inhoud, herdruk gelieve de bron aan te geven:Slimme gereedschapsbibliotheek