javascript vérification de la légitimité de la carte d'identité

Auteur:Boîte à Outils Intelligente Heure de sortie:2022-02-25 21:35:00 Nombre de mots:5392 Lire:16112Une fois

Copiez le code suivant dans le projet, appelez directement la méthode checkIdcard, passez le numéro d'identification, si elle renvoie "Vérifié !" S'il renvoie "Verified !", c'est que le numéro d'identification est légal.

#GoogleAD

function checkIdcard(idcard) {
var Errors = new Array(
"Verification passed !" ,
"Chiffres du numéro d'identification incorrects !" ,
"La date de naissance du numéro d'identification est en dehors de la plage ou contient des caractères illégaux !" ,
"Erreur de vérification du numéro de la carte d'identité !" , "Erreur de validation du numéro de la carte d'identité !" , "Erreur de validation du numéro de la carte d'identité !
"La région de la carte d'identité est illégale !"
) ;
var area = { 11 : "Beijing", 12 : "Tianjin", 13 : "Hebei", 14 : "Shanxi", 15 : "Inner Mongolia", 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 : "Outre-mer" }
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("") ;
// test de zone
if (area[parseInt(idcard.substr(0, 2))] == null) return Errors[4] ;
// Vérification des chiffres et du format du numéro d'identité
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) % 0 == 0) ; //Contrôle du nombre de chiffres et du format du numéro d'identité.
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égitimité 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}$/;//testant la légalité de la date de naissance
}
if (ereg.test(idcard))
return Errors[0] ;
else {
return Errors[2] ;
}
break ; case 18 : return Errors[0] ; else { return Errors[2] ; }
case 18.
/Détection du numéro d'identité à 18 chiffres
/Vérification de la légitimité de la date de naissance
//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]))
//PingYiYuanDao:((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 légale pour les dates de naissance des années bissextiles
} 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]$/;//légitimité de l'expression régulière pour une année plate date de naissance
}
if (ereg.test(idcard)) { //tester la légalité de la date de naissance
//calculer le chiffre 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 = "10X98
JYM = "10X98765432" ;
M = JYM.substr(Y, 1) ; // juge le bit de parité
if (M == idcard_array[17]) return Errors[0] ; //détecter le chiffre de contrôle de l'ID
else return Errors[3] ;
}
else return Errors[2] ;
break ;
par défaut.
return Errors[1] ; } else return Errors[2] ; break ; default.
break ; default : return Errors[1] ; break
}
}

Contenu original, reproduit avec attribution : Boîte à Outils Intelligente

Commentaires (0 articles)

Commentaires (0 articles)

Suggestions et commentaires Contactez-nous