Quando estamos construindo um site na Internet, geralmente usamos nosso número de identificação ao registrar informações pessoais. Precisamos verificar nosso cartão de identificação, caso contrário, outros o passarão simplesmente digitando um número, o que faz você sentir que este site é muito feito.
Existem regras para o número de identificação.
Estrutura e forma
1. A estrutura do número
O número da cidadania é um código de combinação de recursos, composto por um código de ontologia de dezessete dígitos e um código de verificação de um dígito. O pedido de arranjo é da esquerda para a direita: código de endereço de seis dígitos, data do código de nascimento de oito dígitos, código de sequência de três dígitos e código de verificação de um dígito.
2. Código de endereço
O Código da Divisão Administrativa do Condado (cidade, banner, distrito), onde a residência permanente do objeto de codificação está localizada deve ser implementada de acordo com as disposições do GB/T2260.
3. Data do Código de Nascimento
Indica o ano, o mês e o dia do nascimento do objeto codificado. Deve ser executado de acordo com as disposições do GB/T7408. Não há separador entre os códigos do ano, mês e dia.
4. Código de sequência
Indica que dentro da área identificada pelo mesmo código de endereço, o número da sequência atribuído a pessoas nascidas no mesmo ano, mês e dia. O número ímpar do código de sequência é atribuído aos homens e os números até são atribuídos às mulheres.
5. Código de verificação
De acordo com os primeiros dezessete códigos numéricos de dígitos, o código de verificação calculado de acordo com o código de verificação ISO 7064: 1983. Mod 11-2.
Método de cálculo
1. Multiplique o número de 17 dígitos do número de identificação anterior por diferentes coeficientes. Os coeficientes da primeira posição para a décima sétima posição são: 7-9-10-5-8-4-2-1-6-3-7-7-9-10-5-8-4-2.
2. Adicione o resultado de multiplicar esses números e coeficientes de 17 dígitos.
3. Use a adição e divida por 11 para ver qual é o restante?
4. O restante pode ter apenas 11 números: 0-1-2-3-4-5-6-7-7-8-9-10. O número do último cartão de identificação correspondente a ele é 1-0-x-9-8-7-6-5-4-3-2.
5. A partir do exposto, você sabe que, se o restante for 3, o 18º dígito do cartão de identificação aparecerá 9. Se o número correspondente for 2, o último número do cartão de identificação é o número romano x.
Por exemplo: o número de identificação de um homem é [53010219200508011X], vamos ver se esse cartão de identificação é um cartão de identificação legal.
Primeiro, obtemos a soma do produto dos primeiros 17 bits [(5*7)+(3*9)+(0*10)+(1*5)+(0*8)+(2*4)+(1*2)+(9*1)+(2*6)+(0*3) (0*7)+(5*9) (01*10)+(8)+(0*3)+(0*7)+(5*9) (0*10)+(2*6)+(0*3) (0*7)+(5*9) (01*) 189 e, em seguida, divida 189 por 11 é 189/11 = 17 ---- 2, ou seja, o restante dos números é 2. Finalmente, através das regras correspondentes, você pode saber que o código de verificação correspondente ao restante 2 é X. Portanto, pode-se determinar que este é o número de identificação correto.
O acima é extraído da enciclopédia de Baidu.
Esta é uma imagem de informações relacionadas encontrada online.
Com base em informações conhecidas, podemos escrever a implementação interna desse método no JS. A primeira verificação de 17 bits é mais fácil de implementar, por isso não vou dizer muito e focar no código de verificação do último dígito.
A cópia do código é a seguinte:
// Verificação do número de identificação
função isidcard (cardId) {
// Expressão regular do cartão de identidade (18 bits)
var isIdCard2 =/^[1-9]/d {5} (19/d {2} | [2-9]/d {3}) ((0/d) | (1 [0-2])) (([0 | 1 | 2]/d) | 3 [0-1]) (/d {4} |/d {3} x)
var stard = "10x98765432"; // O número do último cartão de identificação
var primeiro = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 4, 2]; // 1-17 Coeficiente
var sum = 0;
if (! isidcard2.test (cardId)) {
retornar falso;
}
var ano = cardid.substr (6, 4);
var mês = cardid.substr (10, 2);
var dia = cardid.substr (12, 2);
var aniversário = cardid.substr (6, 8);
if (aniversário! = dateToString (nova data (ano + '/' + mês + '/' + dia))) {// Verifique se a data é legal
retornar falso;
}
for (var i = 0; i <cardid.length - 1; i ++) {
sum += cardId [i] * primeiro [i];
}
var resultado = soma % 11;
var last = stard [resultado]; // o último número de identificação calculado
if (cardid [cardid.length - 1] .toupPercase () == last) {
retornar true;
} outro {
retornar falso;
}
}
// Data para o formato da data de retorno da string 2008080808
Função DateToString (DATE) {
if (data de dataf Date) {
var ano = date.getlyear ();
var mês = date.getMonth () + 1;
mês = mês <10? '0' + mês: mês;
var dia = date.getDate ();
dia = dia <10? '0' + dia: dia;
retorno ano + mês + dia;
}
retornar '';
}
Apenas cartões de identificação de 18 dígitos são verificados aqui e os cartões de identificação de primeira geração de 15 dígitos não podem ser usados.
Aqui também verificamos a legalidade das datas, como datas ilegais, como 0230, 0431, e a verificação não será aprovada.
Também podemos adicionar esse método ao JQuery Valide para facilitar a verificação.
Escreva um método de verificação de validação jQuery personalizado
A cópia do código é a seguinte:
// Verificação do número de identificação
jQuery.validator.addmethod ("Isidcard",
função (valor, elemento) {
Retorne este.Optional (elemento) || (ISIDCARD (valor));
},
"O número do cartão de identidade é ilegal!");
Vamos ter uma demonstração simples para ver como funciona.
A cópia do código é a seguinte:
<! Doctype html>
<html>
<head>
<meta http-equiv = "content-type" content = "text /html; charset = utf-8" />
<título>
Verificação do número de identificação
</title>
<script src = "http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js">
</script>
<script src = "http://www.w3cschool.cc/try/demo_source/static/js/jquery.validate.js">
</script>
<script type = "text/javascript">
$ (function () {
$ ("#form1"). Validar ({
regras: {
TXTIDCARD: "ISIDCARD"
}
});
});
// Verificação do número de identificação
função isidcard (cardId) {
// Expressão regular do cartão de identidade (18 bits)
var isIdCard2 =/^[1-9]/d {5} (19/d {2} | [2-9]/d {3}) ((0/d) | (1 [0-2])) (([0 | 1 | 2]/d) | 3 [0-1]) (/d {4} |/d {3} x)
var stard = "10x98765432"; // O número do último cartão de identificação
var primeiro = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 4, 2]; // 1-17 Coeficiente
var sum = 0;
if (! isidcard2.test (cardId)) {
retornar falso;
}
var ano = cardid.substr (6, 4);
var mês = cardid.substr (10, 2);
var dia = cardid.substr (12, 2);
var aniversário = cardid.substr (6, 8);
if (aniversário! = dateToString (nova data (ano+'/'+mês+'/'+dia))) {// Verifique se a data é legal
retornar falso;
}
for (var i = 0; i <cardid.length - 1; i ++) {
sum += cardId [i] * primeiro [i];
}
var resultado = soma % 11;
var last = stard [resultado]; // o último número de identificação calculado
if (cardid [cardid.length - 1] .toupPercase () == last) {
retornar true;
} outro {
retornar falso;
}
}
// Data para o formato da data de retorno da string 2008080808
Função DateToString (DATE) {
if (data de dataf Date) {
var ano = date.getlyear ();
var mês = date.getMonth () + 1;
mês = mês <10? '0' + mês: mês;
var dia = date.getDate ();
dia = dia <10? '0' + dia: dia;
retorno ano + mês + dia;
}
retornar '';
}
// JQuery Validate Id Number Verification
jQuery.validator.addmethod ("Isidcard",
função (valor, elemento) {
Retorne este.Optional (elemento) || (ISIDCARD (valor));
},
"O número do cartão de identidade é ilegal!");
</script>
</head>
<Body>
<form id = "form1" método = "get" action = "">
<input type = "text" id = "txtidCard" name = "txtidCard" />
<p>
<input type = "submit" value = "submit" />
</p>
</morm>
</body>
</html>
Verifique com o número de identificação 53010219200508011x fornecido na Encyclopedia Baidu
A verificação pode ser passada, tente alterar x para 0
Se a verificação falhar, o método de verificação que escrevemos será bem -sucedido! Se você não acredita, tente usar seu número de identificação. Acontece que eu usei o JS para verificar o número de identificação tão fácil.
O exposto acima é tudo sobre este artigo, espero que gostem.