Javascript vérifie la légalité de la carte d'identité

Auteur:Bibliothèque d'outils intelligents Heure de sortie:2022-02-25 21:35:00 Nombre de mots:4861 Lire:12036Une fois

Copiez le code suivant dans le projet, appelez directement la méthode checkIdcard, transmettez le numéro d'identification et renvoient "Validation!" Signifie que le numéro d'identification est légal.

# GoogleAD #

Function checkIdcard(idcard) {
Var Errors = new Array (
"Vérification passée! ",
"Le numéro d'identification est faux! ",
"Numéro d'identification date de naissance en dehors de la plage ou contient des caractères illégaux! ",
"Erreur de vérification du numéro d'identification! ",
"La zone de carte d'identité est illégale! ""
);
Var area = { 11: "Pékin", 12: "Tianjin", 13: "Hebei", 14: "Shanxi", 15: "Mongolie intérieure", 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: "Macao", 91: "à l'étranger" }
Var retflag = false;
Var idcard, Y, JYM;
Var S, M;
Var idcard_array = new Array();
Idcard_array = idcard.split("");
// Inspection de zone
If (area[parseInt(idcard.substr(0, 2)))] = = null) return Errors[4];
// Inspection du nombre de numéros d'identité et du format
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}[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 la légalité de la date de naissance
} Else {
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 la légalité de la date de naissance
}
If (ereg.test(idcard))
Return Errors[0];
Else {
Return Errors[2];
}
Break;
Case 18:
// Détection de numéro d'identité à 18 chiffres
// Vérification de la légalité de la date de naissance
// Année et jour du saut:((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])))
// Année, mois et jour:((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]$/;// expression régulière de légalité de la date de naissance d'une année bissextile
} 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}[0-9Xx]$/;// expression régulière de légalité de la date de naissance d'une année normale
}
If (ereg.test(idcard)) {// test de la légalité de la date de naissance
// Calculer le bit de contr?le
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);// juge le bit de contr?le
If (M = = idcard_array[17]) return Errors[0]; // détecte le bit de contr?le de l'ID
Else return Errors[3];
}
Else return Errors[2];
Break;
Default:
Return Errors[1];
Break;
}
}

Contenu original, réimprimé, veuillez indiquer la source:Bibliothèque d'outils intelligents

Commentaires (0 articles)

Suggestions et commentaires Contactez-nous