Ir para conteúdo

POWERED BY:

Arquivado

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

Chakan

Validação CPF/CNPJ

Recommended Posts

Oi pessoal!

 

Eu dei uma vasculhada no forum e encontrei o seguinte script pra validaçao de CPF e CNPJ

 

ASP

[*]<%

 

[*]if Request("chkCPF""on" then

 

[*]CalculaCPF()

 

[*]else

 

[*]CalculaCNPJ()

 

[*]end if

 

[*]

 

[*]

 

[*]'|///////////////////////////////////////////////////////////|

 

[*]'| |

 

[*]'| Funcao para calcular CPF |

 

[*]'| |

 

[*]'|///////////////////////////////////////////////////////////|

 

[*]

 

[*]function CalculaCPF()

 

[*]

 

[*]Dim RecebeCPF, Numero(11), soma, resultado1, resultado2

 

[*]

 

[*]RecebeCPF Request("CampoNumero")

 

[*]

 

[*]'Retirar todos os caracteres que nao sejam 0-9

 

[*]

 

[*]s="" 

 

[*]for x=1 to len(RecebeCPF)

 

[*]ch=mid(RecebeCPF,x,1)

 

[*]if asc(ch)>=48 and asc(ch)<=57 then

 

[*]s=s & ch

 

[*]end if

 

[*]next

 

[*]RecebeCPF = s

 

[*]

 

[*]if len(RecebeCPF) <> 11 then

 

[*]response.write("<h1>É obrigatório o CPF com 11 dígitos</h1>")

 

[*]elseif RecebeCPF "00000000000" then

 

[*]response.write("<h1>CPF Inválido</h1>")

 

[*]else

 

[*]

 

[*]Numero(1) Cint(Mid(RecebeCPF,1,1))

 

[*]Numero(2) Cint(Mid(RecebeCPF,2,1))

 

[*]Numero(3) Cint(Mid(RecebeCPF,3,1))

 

[*]Numero(4) Cint(Mid(RecebeCPF,4,1))

 

[*]Numero(5) Cint(Mid(RecebeCPF,5,1))

 

[*]Numero(6) CInt(Mid(RecebeCPF,6,1))

 

[*]Numero(7) Cint(Mid(RecebeCPF,7,1))

 

[*]Numero(8) Cint(Mid(RecebeCPF,8,1))

 

[*]Numero(9) Cint(Mid(RecebeCPF,9,1))

 

[*]Numero(10) Cint(Mid(RecebeCPF,10,1))

 

[*]Numero(11) Cint(Mid(RecebeCPF,11,1))

 

[*]

 

[*]

 

[*]soma = 10 * Numero(1) + 9 * Numero(2) + 8 * Numero(3) + 7 * Numero(4) + 6 * Numero(5) + 5 * Numero(6) + 4 * Numero(7) + 3 * Numero(8) + 2 * Numero(9)

 

[*]

 

[*]soma = soma -(11 * (int(soma / 11)))

 

[*]

 

[*]if soma = 0 or soma = 1 then

 

[*]resultado1 = 0

 

[*]else

 

[*]resultado1 = 11 - soma

 

[*]end if

 

[*]

 

[*]if resultado1 Numero(10) then

 

[*]

 

[*]soma Numero(1) * 11 + Numero(2) * 10 + Numero(3) * 9 + Numero(4) * 8 + Numero(5) * 7 + Numero(6) * 6 + Numero(7) * 5 + Numero(8) * 4 + Numero(9) * 3 + Numero(10) * 2

 

[*]

 

[*]soma = soma -(11 * (int(soma / 11)))

 

[*]

 

[*]if soma = 0 or soma = 1 then

 

[*]resultado2 = 0

 

[*]else

 

[*]resultado2 = 11 - soma

 

[*]end if

 

[*]

 

[*]if resultado2 Numero(11) then

 

[*]response.write("<h1>CPF Válido</h1>"

 

[*]else

 

[*]response.write("<h1>CPF Inválido</h1>")

 

[*]end if

 

[*]else 

 

[*]response.write("<h1>CPF Inválido</h1>")

 

[*]end if

 

[*]end if

 

[*]

 

[*]end function

 

[*]

 

[*]

 

[*]'|///////////////////////////////////////////////////////////|

 

[*]'| |

 

[*]'| Funcao para calcular CNPJ |

 

[*]'| |

 

[*]'|///////////////////////////////////////////////////////////|

 

[*]

 

[*]function CalculaCNPJ()

 

[*]

 

[*]Dim RecebeCNPJ, Numero(14), soma, resultado1, resultado2

 

[*]

 

[*]RecebeCNPJ Request("CampoNumero")

 

[*]

 

[*]s="" 

 

[*]for x=1 to len(RecebeCNPJ)

 

[*]ch=mid(RecebeCNPJ,x,1)

 

[*]if asc(ch)>=48 and asc(ch)<=57 then

 

[*]s=s & ch

 

[*]end if

 

[*]next

 

[*]RecebeCNPJ = s

 

[*]

 

[*]if len(RecebeCNPJ) <> 14 then

 

[*]response.write("<h1>É obrigatório o CNPJ com 14 dígitos</h1>")

 

[*]elseif RecebeCNPJ "00000000000000" then

 

[*]response.write("<h1>CNPJ Inválido</h1>")

 

[*]else

 

[*]

 

[*]Numero(1) Cint(Mid(RecebeCNPJ,1,1))

 

[*]Numero(2) Cint(Mid(RecebeCNPJ,2,1))

 

[*]Numero(3) Cint(Mid(RecebeCNPJ,3,1))

 

[*]Numero(4) Cint(Mid(RecebeCNPJ,4,1))

 

[*]Numero(5) Cint(Mid(RecebeCNPJ,5,1))

 

[*]Numero(6) CInt(Mid(RecebeCNPJ,6,1))

 

[*]Numero(7) Cint(Mid(RecebeCNPJ,7,1))

 

[*]Numero(8) Cint(Mid(RecebeCNPJ,8,1))

 

[*]Numero(9) Cint(Mid(RecebeCNPJ,9,1))

 

[*]Numero(10) Cint(Mid(RecebeCNPJ,10,1))

 

[*]Numero(11) Cint(Mid(RecebeCNPJ,11,1))

 

[*]Numero(12) Cint(Mid(RecebeCNPJ,12,1))

 

[*]Numero(13) Cint(Mid(RecebeCNPJ,13,1))

 

[*]Numero(14) Cint(Mid(RecebeCNPJ,14,1))

 

[*]

 

[*]soma Numero(1) * 5 + Numero(2) * 4 + Numero(3) * 3 + Numero(4) * 2 + Numero(5) * 9 + Numero(6) * 8 + Numero(7) * 7 + Numero(8) * 6 + Numero(9) * 5 + Numero(10) * 4 + Numero(11) * 3 + Numero(12) * 2

 

[*]

 

[*]soma = soma -(11 * (int(soma / 11)))

 

[*]

 

[*]if soma = 0 or soma = 1 then

 

[*]resultado1 = 0

 

[*]else

 

[*]resultado1 = 11 - soma

 

[*]end if

 

[*]if resultado1 Numero(13) then

 

[*]soma Numero(1) * 6 + Numero(2) * 5 + Numero(3) * 4 + Numero(4) * 3 + Numero(5) * 2 + Numero(6) * 9 + Numero(7) * 8 + Numero(8) * 7 + Numero(9) * 6 + Numero(10) * 5 + Numero(11) * 4 + Numero(12) * 3 + Numero(13) * 2

 

[*]soma = soma - (11 * (int(soma/11)))

 

[*]if soma = 0 or soma = 1 then

 

[*]resultado2 = 0

 

[*]else

 

[*]resultado2 = 11 - soma

 

[*]end if

 

[*]if resultado2 Numero(14) then

 

[*]response.write("<h1>CNPJ válido</h1>")

 

[*]else

 

[*]response.write("<h1>CNPJ inválido</h1>")

 

[*]end if

 

[*]else

 

[*]response.write("<h1>CNPJ inválido</h1>")

 

[*]end if

 

[*]end if

 

[*]end function

 

[*]%>

 

O problema eh que ele soh valida o CPF/CNPJ se o RadioButton estiver clicado. Alguem poderia me dizer oq precisa ser mudado pra que ele valide o CPF/CNPJ no campo de texto do formulario, qdo for pressionado o botao Submit?

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, no seu form você já seleciona um dos RadioButton como padrão, pois a lógica está correta e para rodar a função correta deve-se fazer dessa forma mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas como esta seu form?? tem alguma validação javscript que mude o valor ou alguma propriedade do textfield??pois depois que submeter o negocio deveria funcionar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas como esta seu form?? tem alguma validação javscript que mude o valor ou alguma propriedade do textfield??

 

pois depois que submeter o negocio deveria funcionar...

<{POST_SNAPBACK}>

Entao Mario..o problema eh esse..se ele tiver desse modo como ta acima, vai normal..mas no formulario q eu queria por, gostaria q ficasse assim:

 

Nome: xxxxxx

CPF: xxxxxx

_____

|Enviar|

 

Ae ao enviar ele rodaria esse script em ASP q verificaria se eh um CPF valido. No entanto nesse script ae ele soh faz isso se o Radiobutton no campo do form tiver marcado. Eu queria tirar esse RadioButton, e fazer com q a verificaçao fosse feita apenas clicando no Enviar.

 

Obrigado ae!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahhhhh, assim é diferente, hehehehe, vai ser só CPF mesmo!

 

Copia a function CalculaCPF(), joga em teu Script e simplesmente chama ela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahhhhh, assim é diferente, hehehehe, vai ser só CPF mesmo!

 

Copia a function CalculaCPF(), joga em teu Script e simplesmente chama ela.

so isso mesmo

 

ai você tira

isso

 

if Request("chkCPF") = "on" then

CalculaCPF()

else

CalculaCNPJ()

end if

 

que nao eh mais necessario e a outra funcao tb...

 

boa sorte...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá marioufpa

 

Também estava com essa dúvida.

Fiz o que você disse e deu certo, mas a questão agora é o seguinte:

Quero colocar valor para uma variável (erro_cpf="CPF Inválido") no lugar dos responsese não funciona fazendo isso.

Minha pergunta é pq?

 

Valeu http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi sua duvida como assim colocar no lugar dos response???

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.