Javascript verifica a legalidade do cartão de identificação

Autor:Biblioteca de ferramentas inteligentes Tempo de lançamento:2022-02-25 21:35:00 Número de palavras:4683 Leia:8026Vezes

Copie o código a seguir para o projeto, chame diretamente o método checkIdcard e passe o número de identifica??o. Se você retornar "Verifica??o aprovada!" Isso significa que o número de identifica??o é legal.

# GoogleAD #

Function checkIdcard(idcard) {
Var Errors = new Array (
"Verifica??o aprovada! ",
"O número de identifica??o está errado! ",
"A data de nascimento do número de identifica??o está fora do intervalo ou contém caracteres ilegais! ",
"Erro de verifica??o do número de identifica??o! ",
"A área do cart?o de identidade é ilegal! "
);
Var area = { 11: "Pequim", 12: "Tianjin", 13: "Hebei", 14: "Shanxi", 15: "Mongólia Interior", 21: "Liaoning", 22: "Jilin", 23: "Heilongjiang", 31: "Xangai", 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: "Tibete", 61: "Shaanxi", 62: "Gansu", 63: "Qinghai", 64: "Ningxia", 65: "Xinjiang", 71: "Taiwan", 81: "Hong Kong", 82: "Macau", 91: "estrangeiro" }
Var retflag = false;
Var idcard, Y, JYM;
Var S, M;
Var idcard_array = new Array();
Idcard_array = idcard.split("");
// Inspe??o regional
If (area[parseInt(idcard. subsr (0, 2))] = = null) return Errors[4];
// Número de identifica??o e verifica??o de formato
Switch (idcard.length) {
Case 15:
If ((parseInt(idcard. subsr (6, 2)) + 1900) % 4 = = 0 | | (parseInt(idcard. subsr (6,2)) + 1900) %)
100 = = 0 & & (parseInt(idcard. subsr (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}$/;// Testando a legitimidade da data de nascimento
} 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}$/;// testa a legitimidade da data de nascimento
}
If (ereg.test(idcard))
Errors de retorno [0];
Else {
Errors de retorno [2];
}
Break;
Case 18:
// Detec??o de número de identidade de 18 dígitos
// Verifica??o da legalidade da data de nascimento
// Ano bissexto, mês e dia:((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]))
// Dia do mês: (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. subsr (6, 4)) % 4 = = 0 | | (parseInt(idcard. subsr (6, 4)) % 100 = 0 &
ParseInt (idcard. subsr (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]$/;// legitimidade da data de nascimento do ano bissexto Express?o regular
} 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]$/;// A legitimidade da data de nascimento do ano normal Express?o regular
}
If (ereg.test(idcard)) {// testa a legitimidade da data de nascimento
// Cálculo do dígito de verifica??o
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. instr (Y, 1);// Dedo de verifica??o
If (M = = idcard_array[17]) Return Errors[0]; // Detec??o do bit de verifica??o da ID
Else return Errors[3];
}
Else return Errors[2];
Break;
Default:
Errors de retorno [1];
Break;
}
}

Conteúdo original, por favor indique a fonte da reimpress?o:Biblioteca de ferramentas inteligentes

Comentários (0 no total)

Sugestões e feedback Contacte-nos