Javascript verifica la legalidad de la tarjeta de identificación

Autor:Biblioteca de herramientas inteligentes Tiempo de lanzamiento:2022-02-25 21:35:00 Número de palabras:4821 Leer:8185VEsegundo

Copie el siguiente código en el proyecto, llame directamente al método checkIdcard, pase el número de identificación, si devuelve "?La verificación ha pasado!" Esto significa que el número de identificación es legal.

# GoogleAD #

Function checkIdcard(idcard) {
Var Errors = nuevo Array (
"?Verificación! ",
"?El número de identificación es incorrecto! ",
"?La fecha de nacimiento del número de identificación está fuera del alcance o contiene caracteres ilegales! ",
"?Error de verificación del número de identificación! ",
"?El área de la tarjeta de identificación es ilegal! "
);
Var area = { 11: "Beijing", 12: "Tianjin", 13: "Hebei", 14: "Shanxi", 15: "Mongolia Interior", 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: "Extranjero" }
Var retflag = false;
Var idcard, Y, JYM;
Var S, M;
Var idcard_array = new Array();
Idcard_array = idcard.split("");
// Inspección regional
If (area[parseInt(idcard.substr(0, 2))] = = null) return Errors[4];
// Verificación de formato y número de identidad
Switch (idcard.length) {
Caso 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}$/;// Prueba la legalidad 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}$/;// Prueba la legalidad de la fecha de nacimiento
}
If (ereg.test(idcard))
Return Errors[0];
Else {
Return Errors[2];
}
Romper;
Caso 18:
// Detección de número de identidad de 18 dígitos
// Verificar la legalidad de la fecha de nacimiento
// A?o, mes y día:((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]))
// A?o, mes y día:((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]$/;// expresión regular de la legalidad de la fecha de nacimiento en el a?o bisiesto
} 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]$/;// La legalidad de la fecha de nacimiento en un a?o normal Expresión regular
}
If (ereg.test(idcard)) {// prueba la legalidad de la fecha de nacimiento
// Calcular el bit de verificación
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);// para juzgar el bit de verificación
If (M = = idcard_array[17]) return Errors[0]; // el bit de verificación para la identificación de detección
Else return Errors[3];
}
Else return Errors[2];
Romper;
Default:
Return Errors[1];
Romper;
}
}

Contenido original, indique la fuente para la reimpresión:Biblioteca de herramientas inteligentes

Comentarios (Total 0)

Sugerencias y comentarios Póngase en contacto con nosotros