Validador de Rut Chileno en Vb.Net

El siguiente método permite validar un Rut Chileno, retornando true en caso de ser válido y false en caso de ser incorrecto.

 Public Function validarRut(ByVal rut As String) As Boolean

            Dim validacion As Boolean = False

            Try

                rut = rut.ToUpper()
                rut = rut.Replace(".", "")
                rut = rut.Replace("-", "")
                Dim rutAux As Integer
                rutAux = Integer.Parse(rut.Substring(0, rut.Length - 1))

                Dim dv As Integer = Asc(rut.Substring(rut.Length - 1, 1))

                Dim s As Integer = 1
                Dim m As Integer = 0

                While rutAux <> 0

                    If (rutAux = 0) Then
                        Dim valor As Integer = (s + ((rutAux Mod 10) * (9 - (m Mod 6))))

                        s = valor Mod 11
                        m += 1

                    End If
                    rutAux /= 10

                End While

                Dim dvAux As Integer = IIf(s <> 0, s + 47, 75)

                If (dv = dvAux) Then

                    validacion = True

                End If
            Catch es As Exception

            End Try
            Return validacion

        End Function

Esperamos sea de su utilidad

También te podría gustar...

16 Respuestas

  1. Que WEA dice:

    Una Mierda de Codigo

  2. Antonio dice:

    Victor

    Qué valor le estás pasando?
    y si quiero llamar la función desde el evento click del botón buscar sería necesario sólo validarrut(rut.text) no?

  3. jorge dice:

    Hola, necesito validar rut en vb usando clases y objetos, si me podrias ayudar, gracias.

  4. Danilo dice:

    un rut tan simple como 22222222-2

  5. Danilo dice:

    hay rut q no valida y estan bien ingresado

  6. Daniel Arias dice:

    Hola, por alguna extraña razon no funciona con rut terminado en K, saludos

    • Estimado prueba con k o K, si una de las dos funciona cambia el método para que siempre convierta a mayúscula el rut ingresado.

      Quedo atento a tus comentarios

      • Daniel Arias dice:

        Hola prove con mayusculas y paso lo mismo, ademas me sigue fallando con otros rut chilenos que obtuve en producción. Saludos

  7. Danilo dice:

    If txtrut.text «»
    validarRut(txtrut.text)
    End If

  8. Danilo dice:

    para llamar la funcion validarRut(txtrut.text) lo puedes hacer en un lostfocus asi en un boton hay depende de ti

    If txtrut.text»»
    validarRut(txtrut.text)
    End If

  9. rodrigo dice:

    hola buenas tardes como llamas a esa función en vb.net

  10. daniel dice:

    Gracias