verificación javascript de la legitimidad del documento de identidad

Autor:Kit de Herramientas Inteligentes Tiempo de lanzamiento:2022-02-25 21:35:00 Número de palabras:5226 Leer:14454VEsegundo

Copie el siguiente código en el proyecto, llame directamente al método checkIdcard, pase el número de identificación, si devuelve "¡Verificado!" Si devuelve "¡Verificado!", entonces el número de ID es legal.

#GoogleAD

function checkIdcard(idcard) {
var Errors = new Array(
"¡Verificación superada!" ,
"¡Dígitos del número de identificación incorrectos!" ,
"¡La fecha de nacimiento del número de identificación está fuera de rango o contiene caracteres ilegales!" ,
"¡Error de verificación del número de documento de identidad!" , "¡Error de validación del número de documento de identidad!" , "¡Error de validación del número de documento de identidad!
"¡Región del documento de identidad es ilegal!"
);
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: "Taiwán", 81: "Hong Kong", 82: "Macao", 91: "Ultramar" }
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("");
// prueba de área
if (area[parseInt(idcard.substr(0, 2))] == null) return Errors[4];
// Comprobación de los dígitos y el formato del número de identidad
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); // Dígitos del número de identidad y comprobación del formato.
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}$/;//comprobar la legitimidad de la fecha de nacimiento
} 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}$/;//comprobar la legalidad de la fecha de nacimiento
}
if (ereg.test(idcard))
return Errores[0];
else {
return Errores[2];
}
break; case 18: return Errors[0]; else { return Errors[2]; }
case 18.
//Detección del número de identidad de 18 dígitos
//Comprobación de la fecha de nacimiento
//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-9X]$/;//expresión regular legal para fechas de nacimiento de años bisiestos
} 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-9X]$/;//legitimidad de la expresión regular para una fecha de nacimiento de año plano
}
if (ereg.test(idcard)) { //comprobar la legalidad de la fecha de nacimiento
//calcular el dígito de control
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); // juzga el bit de paridad
if (M == idcard_array[17]) return Errors[0]; //detectar el dígito de control del ID
else return Errors[3];
}
else return Errors[2];
break;
por defecto
return Errors[1]; } else return Errors[2]; break; default.
break; por defecto: return Errors[1]; break
}
}

Contenido original, reproducido con atribución: Kit de Herramientas Inteligentes

Comentarios (Total 0)

Sugerencias y comentarios Póngase en contacto con nosotros