Validação de CNPJ em .NET

 

Alguns algorítimos são de uso muito comum e frequente, para esses é comum utilizarmos a velha técnica do copy/past. Um deles é o de validação de CNPJ. Segue então um código de validação de CNPJ em VB.NET. Esse código pode ser utilizado, por exemplo, em um customValidator de uma aplícação web.

 

Public Function IsCNPJ(ByVal strCNPJ As String) As Boolean

  IsCNPJ = False

  Dim a, j, d1, d2 As Double

  Dim i As Integer

  If Len(strCNPJ) <> 14 Then

    IsCNPJ = False

  Exit Function

  End If

 

If Not IsOnlyNumber(strCNPJ) Then

  IsCNPJ = False

  Exit Function

End If

 

a = 0

i = 0

d1 = 0

d2 = 0

j = 5

For i = 1 To 12 Step 1

  a = a + (Val(Mid(strCNPJ, i, 1)) * j)

  j = Convert.ToDouble(IIf(j > 2, j - 1, 9))

Next i

a = a Mod 11

d1 = Convert.ToDouble(IIf(a > 1, 11 - a, 0))

a = 0

i = 0

j = 6

For i = 1 To 13 Step 1

  a = a + (Val(Mid(strCNPJ, i, 1)) * j)

  j = Convert.ToDouble(IIf(j > 2, j - 1, 9))

Next i

a = a Mod 11

d2 = Convert.ToDouble(IIf(a > 1, 11 - a, 0))

If (d1 = Val(Mid(strCNPJ, 13, 1)) And d2 = Val(Mid(strCNPJ, 14, 1))) Then

  IsCNPJ = True

Else

  IsCNPJ = False

End If

End Function