Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

No Limite!!!

Validação...

Recommended Posts

Não sei o do PIS ...uma coisa que eu achei na net (não sei o site) interessante é a lógica, ao invés de apenas o código...abaixo:Explicando o algorítmo dos CPF's-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--O número de CPF é formado por 11 dígitos, nesse esquema: xxxxxxxxx-xx. Por meio deste texto, pretendo explicar como funciona o algorítmo de geração desse número.Primeiramente, invente os nove primeiros dígitos, por exemplo, 542369851-xx. Os x's servem para deixar o algorítmo correto. Vou explicar nas seguintes linhas como obter o primeiro e o segundo dígito que tanto nos interessa.-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-1)DESVENDANDO O PRIMEIRO DÍGITO:Calcule:10*d1 + 9*d2 + 8*d3 + 7*d4 + 6*d5 + 5*d6 + 4*d7 + 3*d8 + 2*d9OBS: dx é a posição do dígito. ex:d2 = Segundo dígito, no caso do nosso exemplo, o número quatro. Se você foi nas aulas de Matemática, vai chegar no resultado 253.Agora, divida esse número por 11 (número total de dígitos no CPF). Novamente, se não faltou nas aulas, irá obter o número 23 como resultado.OBS: Se esta divisão der um número com casas decimais depois da vírgula, como por exemplo 23,2 ignore o que vem depois da vírgula, considere apenas o inteiro.Multiplique dessa vez 23 * 11 (numero da divisão * numero total de digitos do CPF). Agora, Subtraia do número 253, vindo da primeira conta que você teve de fazer, o número obtido com a multiplicação 23 * 11. Se o resto for igual a 0 ou igual a 1, o primeiro dígito depois do hífen no CPF será igual a 0, obteremos assim o seguinte: 542369851-0x.Se o resultado da subtração for diferente de 0 e 1, para obter o primeiro x calcule: 11 menos o resto da subtração. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-2)DESVENDANDO O SEGUNDO DÍGITO:Falta o segundo x. Vamos desvendá-lo... calcule o seguinte: 11*d1 + 10*d2 + 9*d3 + 8*d4 + 7*d5 + 6*d6 + 5*d7 + 4*d8 + 3*d9 + 2*pridigOBS:"dx" é a posição do dígito e "pridig" é o primeiro x depois do hífen, no nosso caso, o número 0.Se você tem um pouco de massa encefálica dentro da cabeça, obterá o resultado 296. Divida isso por 11(número de dígitos do CPF). Obterá 26,909. Use só a parte inteira desse número e multiplique por 11 (26 * 11) O resultado será 286. Subtraia 296(vindo da primeira conta pra esse dígito) por 286(conta que acabamos de fazer). Obteremos o resultado 10. Vale a mesma regra que usamos no primeiro x. Se o resto for 0 ou 1, o x é igual a 0, se o resto da subtração for diferente de 0 ou 1, subtraia 11 pelo número. ex: Se a subtração der 5, faça 11 - 5 = 6. o x vai ser igual a 6. Mas voltando ao nosso número, o x deu igual a 10. Ou seja, o x é igual a 1. Assim sendo, CPF VÁLIDO obtido por nós foi: 542369851-01.-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-3)CONCLUSÃO:parabéns para nós!!! Tá aí... o algoritmo de geração de CPF's prontinho... mastigadinho...Isso pode ser útil de duas formas:1º Se você precisar de um número de CPF, faça-o! 2º Se você tiver conhecimentos em alguma linguagem de programação, faça um programa que gera esses números! Bom, é isso aí. Espero que esse texto tenha sido útil pra você!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com relação a validação do PIS, encontrei o script abaixo na net. Mas sou iniciante em javascript. Alguém poderia me explicar como posso aplicar este script no meu formulário de cadastro?

 

function Calcul_DV_NIS(x) // recebe um numero de 10 digitos e // calcula o dv correspondente { var valor = parseInt(x); var multi = 0; var resto=0; var soma=0; for (i=2;i<12;i++) { multi = i; if (i==10) multi = 2; if (i==11) multi = 3; soma = soma + ( (x % 10) * multi); x = parseInt(x / 10); } resto = soma % 11; if (resto > 1) { //alert(11-resto) return (11 - resto); } else { //alert(0) return 0; } } function Verif_NIS(x) { if ((x.length!=11)||(x.length=="")) return false; var dv = Calcul_DV_NIS(x.substring(0,10)); //alert(dv); if (x.substring(10,11) != dv) return false; else return true; }

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.