Home Articles VB.Net Articles Check if a VAT Number is valid

Check if a VAT Number is valid

In this VB.Net Tutorial/Code Example, I'm going to show you how to check whether a VAT Number is valid or not.

For this piece of code you will need to import "System.Text.RegularExpressions"

        Public Shared Function isValidVATNumber(ByVal theVATNumber As String) As Boolean
            Dim startChar As String = "^"
            Dim endChar As String = "$"
            Dim rtn As Boolean = False
            Dim i As Integer = 8
            Dim valString As String
            Dim sum As Integer = 0

            'Check that the string matches the requirements
            rtn = Regex.IsMatch(theVATNumber, startChar & "([A-Z{2}])*(([1-9]\d{8})|([1-9]\d{11}))" & endChar, RegexOptions.Multiline)

            If rtn Then
                'Now perform the validation
                valString = theVATNumber

                If Regex.IsMatch(valString, startChar & "[A-Z]{2}", RegexOptions.Multiline) Then
                    valString = valString.Substring(2)
                End If

                While i >= 2
                    sum += (i * CInt(valString.Substring(0, 1)))
                    valString = valString.Substring(1)
                    i -= 1
                End While

                While sum > 0
                    sum -= 97
                End While

                rtn = ((sum * -1) = CInt(valString))
            End If

            Return rtn
        End Function