经典asp中的CPF验证

时间:2012-07-26 11:31:59

标签: asp-classic vbscript

我是经典asp的新手。我想在经典的asp中使用CPF验证功能。

以下链接在javascript和vb.net中有CPF验证功能,但我希望它在经典的asp / vbscript中

http://codigofonte.uol.com.br/codigo/js-dhtml/validacao/validar-cpf-via-javascript

http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=3811&lngWId=10

由于

1 个答案:

答案 0 :(得分:4)

最后,我自己设法编写了一个vbscript函数。它可能在将来帮助某人。

function ValidateCPFNew(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
        ValidateCPFNew = 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 
            ValidateCPFNew = true
        else
            ValidateCPFNew = false
        end if
    end if
end Function