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
Una Mierda de Codigo
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?
Le envió el RUT, con o sin puntos y guion, efectivamente puedes llamar al método como mencionas, siempre y cuando el método este dentro de la misma clase.
Hola, necesito validar rut en vb usando clases y objetos, si me podrias ayudar, gracias.
Solo debes meter este método dentro de cualquier clase y llamarla desde fuera.
un rut tan simple como 22222222-2
Voy a revisar el método para ver que ocurre. Saludos y gracias
hay rut q no valida y estan bien ingresado
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
Hola prove con mayusculas y paso lo mismo, ademas me sigue fallando con otros rut chilenos que obtuve en producción. Saludos
If txtrut.text «»
validarRut(txtrut.text)
End If
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
hola buenas tardes como llamas a esa función en vb.net
if(validarRut(«1-9»))
Mbox(«OK»)
Gracias