Validação de CPF em ASP (VBSCRIPT)
De repente precisamos de um validador via server-side de CPF, haja visto que vários na internet não funcionam corretamente e outros aceitam valores incorretos, segue à seguir um código encontrado que é totalmente funcional para qualquer tipo de CPF.
Lembre-se, a validação por server-side é essencial para garantir que dados não estejam entrando errado em seu sistema.
* Atualizado em 23/03/2019. A versão anterior estava com erro no cálculo de CPF que inicia-se com zero, ajuste realizado.
Fonte: http://stackoverflow.com/questions/11668350/cpf-validation-in-classic-asp
Lembre-se, a validação por server-side é essencial para garantir que dados não estejam entrando errado em seu sistema.
Function IsCPF(Cpf)
Dim multiplic1,multiplic2
multiplic1=Array(10,9,8,7,6,5,4,3,2)
multiplic2=Array(11,10,9,8,7,6,5,4,3,2)
Dim tempCpf,digit,sum,remainder,i,RegXP
Cpf = Trim(Cpf)
Cpf = Replace(Cpf,".", "")
Cpf = Replace(Cpf,"-", "")
If (Len(Cpf) <> 11) Then
IsCPF = False
Else
tempCpf = Left(Cpf,9)
sum = 0
Dim intCounter
Dim intLen
Dim arrChars()
intLen = Len(tempCpf)-1
Redim arrChars(intLen)
For intCounter = 0 to intLen
arrChars(intCounter) = Mid(tempCpf, intCounter + 1,1)
Next
i=0
For i = 0 to 8
sum =sum + CInt(arrChars(i)) * multiplic1(i)
Next
remainder = sum Mod 11
If (remainder < 2) Then
remainder = 0
Else
remainder = 11 - remainder
End If
digit = CStr(remainder)
tempCpf = tempCpf & digit
sum = 0
intLen = Len(tempCpf)-1
Redim arrChars(intLen)
intCounter= 0
For intCounter = 0 to intLen
arrChars(intCounter) = Mid(tempCpf, intCounter + 1,1)
Next
i=0
For i = 0 to 9
sum =sum + CInt(arrChars(i)) * multiplic2(i)
Next
remainder = sum Mod 11
If (remainder < 2) Then
remainder = 0
Else
remainder = 11 - remainder
End If
digit = digit & CStr(remainder)
Set RegXP=New RegExp
RegXP.IgnoreCase=1
RegXP.Pattern=digit & "$"
If RegXP.test(Cpf) Then
RegXP.Pattern="\b(\d)\1+\b"
If Not RegXP.test(Cpf) Then
IsCPF = True
Else
IsCPF = False
End if
Else
IsCPF = False
End If
End If
End Function
* Atualizado em 23/03/2019. A versão anterior estava com erro no cálculo de CPF que inicia-se com zero, ajuste realizado.
Fonte: http://stackoverflow.com/questions/11668350/cpf-validation-in-classic-asp
Com essa alteraçaõ, se o número do cpf começar com 0 da erro de divisão por 0.
ResponderExcluirEste erro já foi ajustado.
Excluir