javascript verificação da legitimidade do bilhete de identidade

Autor:Kit de Ferramentas Inteligentes Tempo de lançamento:2022-02-25 21:35:00 Número de palavras:5161 Leia:16136Vezes

Copie o seguinte código para o projeto, chame diretamente o método checkIdcard, passe o número de ID, se devolver "Verified!" Se devolver "Verificado!", então o número de ID é legal.

#GoogleAD

function checkIdcard(idcard) {
var Erros = new Array(
"Verificação aprovada!" ,
"Dígitos do número de ID incorrectos!" ,
"A data de nascimento do número de ID está fora do intervalo ou contém caracteres ilegais!" ,
"Erro de verificação do número do bilhete de identidade!" , "Erro de validação do número do bilhete de identidade!" , "Erro de validação do número do bilhete de identidade!
"A região do bilhete de identidade é 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: "Taiwan", 81: "Hong Kong", 82: "Macau", 91: "Overseas" }
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("");
// teste de área
if (area[parseInt(idcard.substr(0, 2))] == null) return Errors[4];
// Verificação dos dígitos do número de identificação e do formato
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); //Verificar o número de dígitos e o formato do número de identificação.
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}$/;//teste 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}$/;//testando a legalidade da data de nascimento
}
se (ereg.test(idcard))
return Erros[0];
senão {
return Erros[2];
}
break; case 18: return Errors[0]; else { return Errors[2]; }
case 18.
/Deteção do número de identificação de 18 dígitos
//Controlo de legitimidade para a data de nascimento
//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]))
se (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]$/;//expressão regular legal para datas de nascimento de anos bissextos
} 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]$/;//legitimidade da expressão regular para uma data de nascimento de ano fixo
}
if (ereg.test(idcard)) { //teste a legalidade da data de nascimento
//calcular o dígito de controlo
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); // avalia o bit de paridade
if (M == idcard_array[17]) return Errors[0]; //detetar o dígito de controlo do ID
senão retorna Erros[3];
}
senão devolve Erros[2];
pausa;
default.
return Errors[1]; } else return Errors[2]; break; default.
break; default: return Errors[1]; break
}
}

Conteúdo original, reproduzido com atribuição: Kit de Ferramentas Inteligentes

Comentários (0 no total)

Comentários (0 no total)

Sugestões e feedback Contacte-nos