Função para Validar CNPJ em ASP

Tive dificuldades para validar um formulário com CNPJ esses dias, portanto segue uma função que faz o trabalho retornando TRUE ou FALSE

OBS: O código não é meu, fiz algumas correçoes e adaptações, créditos para o autor que não sei quem é =(

<%

function ValidaCNPJ(cnpj)

     Dim RecebeCNPJ, Numero(14), soma, resultado1, resultado2


     if cnpj > 14 then

          cnpj = right(cnpj, 14)

     end if



     RecebeCNPJ = cnpj

     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

           CnpjErro = false

     else


          if RecebeCNPJ = "00000000000000" then

               CnpjErro = false

          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

                         CnpjErro = true

                    else

                         CnpjErro = false

                    end if

               else

                    CnpjErro = false

               end if

          end if

     end if

ValidaCNPJ = CnpjErro

end function

%>




Para utilizar essa função faça o seguinte:

if ValidaCNPJ(request.form("campoCNPJ")) = true then
    response.write("CNPJ Válido")
else
    response.write("CNPJ inválido")
end if

abs

Nenhum comentário:

Postar um comentário