Validar Rut



 

 

Procedimiento para obtener el dígito verificador

El RUT consta de dos partes, el número y el dígito verificador separados por un guión. En el siguiente ejemplo se toma como RUT el número 30.686.957-X, donde 30.686.957 es el número del RUT y X es el dígito verificador que no conocemos o que queremos verificar:

– Se procede a tomar el número de RUT de derecha a izquierda, multiplicando cada dígito por los números que componen la serie numérica 2,3,4,5,6,7; y sumando el resultado de estos productos, como se muestra a continuación (si se ha aplicado la serie hasta el 7 y quedan dígitos por multiplicar, se comienza la serie nuevamente):


En el ejemplo:

7 × 2 = 14,
5 × 3 = 15,
9 × 4 = 36,
6 × 5 = 30,
8 × 6 = 48,
6 × 7 = 42,
0 × 2 = 0,
3 × 3 = 9,

entonces la suma de los productos es: 14+15+36+30+48+42+0+9 = 194

– Al número obtenido por la suma del producto de cada dígito por la serie ya mencionada, se le aplica módulo 11, o sea, se divide por 11 y se determina el resto de la división.

En el ejemplo:

194: 11 = 17

Resto: 7

Ahora a 11 se le resta el resto:

En el ejemplo:

11 – 7 = 4

  • Si el resultado es 11, el dígito verificador será 0.
  • Si el resultado es 10, el dígito verificador será K.
  • En otro caso el resultado será el dígito verificador.

Como en el ejemplo el resultado de la resta es 4, el dígito verificador es 4.

Por ende, el RUT del ejemplo es el 30.686.957-4.   


Dim rutLimpio As String
Dim digitoVerificador As String
Dim suma As Integer
Dim contador As Integer = 2

rutLimpio = txtRut.Text.Replace(“.”, “”)
rutLimpio = rutLimpio.Replace(“-“, “”)
rutLimpio = rutLimpio.Replace(” “,””)
rutLimpio = rutLimpio.Substring(0, rutLimpio.Length – 1)
digitoVerificador = txtRut.Text.Substring(txtRut.Text.Length – 1, 1)

Dim i As Integer

For i = rutLimpio.Length – 1 To 0 Step -1

If contador > 7 Then
contador = 2
End If

suma += Integer.Parse(rutLimpio(i).ToString()) * contador
contador += 1
Next

Dim dv As Integer = 11 – (suma Mod 11)
Dim DigVer As String = dv.ToString()

If DigVer = “10” Then
DigVer = “K”
End If

If DigVer = “11” Then
DigVer = “0”
End If

If DigVer = digitoVerificador.ToUpper Then
lblMensaje.Text = “Rut Valido”
Else
lblMensaje.Text = “Rut Invalido”
End If

5 respuestas a Validar Rut

  1. Andre dice:

    justo andaba buscando un ejemplo bien practico en la web.
    y l tuyo..resulto binw exacto..para aclarar mis dudas

    ….bien!

  2. ModderClocker dice:

    un ejemplo bien explicado, resulta facil de comprender, cualquier duda pregunta no más.

    Saludos..!!

  3. francisca dice:

    este programa muestra el rut con digito verificador y guion??????

    • ModderClocker dice:

      Hola Francisca,

      No, el código que publiqué solo verifica que el Rut ingresado sea correcto. Tu le ingresas el Rut (con o sin puntos y guión) más el digito verificador y te devuelve si es un Rut correcto o no.

      Saludos…

  4. Leo Nuñez dice:

    En Oracle PL/SQL :

    CREATE OR REPLACE FUNCTION FN_VALIDA_RUT(PRUT IN VARCHAR2, PDV IN VARCHAR2) RETURN VARCHAR2
    IS

    V_CONTADOR NUMBER;
    V_POS NUMBER;

    V_TOTAL NUMBER;

    V_DV VARCHAR2(2);

    BEGIN

    V_CONTADOR:=2;
    V_TOTAL:=0;
    V_POS:=LENGTH(PRUT);

    LOOP
    EXIT WHEN V_POS = 0;

    IF V_CONTADOR > 7 THEN
    V_CONTADOR:=2;
    END IF;

    V_TOTAL:=V_TOTAL+TO_NUMBER(SUBSTR(PRUT,V_POS,1))*V_CONTADOR;

    V_CONTADOR:=V_CONTADOR+1;

    V_POS:=V_POS-1;
    END LOOP;

    V_DV:=11-MOD(V_TOTAL,11);

    IF UPPER(PDV) = ‘K’ THEN
    IF V_DV = 10 THEN
    RETURN 1;
    ELSE
    RETURN 0;
    END IF;
    END IF;

    IF V_DV = ’11’ THEN
    V_DV:= ‘0’;
    END IF;

    IF V_DV = PDV THEN
    RETURN 1;
    ELSE
    RETURN 0;
    END IF;

    EXCEPTION
    WHEN OTHERS THEN
    RETURN SQLERRM;
    END;

    SELECT FN_VALIDA_RUT(‘1′,’9’) FROM DUAL

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: