CÓMO: Ver el dígito verificador de un Rut
Wednesday, June 10, 2009 16:22Hace un tiempo en clases nos pidieron cómo validar un rut, y todos fueron a la página de juque a ver cómo se hacía. Ahroa “le traémos lo contrario” cómo obtener el dígito verificador de un Rut [para usar en sitios como averigualo.cl]. Aclaro que el código está modificado en base a lo programado por Juque.
El código en PHP:
<?php
// valida_rut($r) v0.001
// No importa si el RUT esta con punto (.), comas (,),
// guion (-),k (minuscula | mayuscula) da igual.
// ----------------------------------------------------
// Autor: Juan Pablo Aqueveque <jp [arroba] juque [punto] cl >
// Script completamente gratis, eso si! mándame un email si lo ocupas
// o si encuentras algún problema :]
// Temuco, 31 octubre 2002 11:48:00
//
// Mod: Brede Basualdo Serraíno <brede [arroba] bredebs [punto] net>
// Concepción, 10 junio 2009 12:01:00
function valida_rut($r)
{
$r=strtoupper(ereg_replace('\.|,|-','',$r));
$sub_rut=substr($r,0,strlen($r));
$sub_dv=substr($r,-1);
$x=2;
$s=0;
for ( $i=strlen($sub_rut)-1;$i>=0;$i-- )
{
if ( $x >7 )
{
$x=2;
}
$s += $sub_rut[$i]*$x;
$x++;
}
$dv=11-($s%11);
if ( $dv==10 )
{
$dv='K';
}
if ( $dv==11 )
{
$dv='0';
}
return $dv;
}
echo valida_rut($_GET['rut']);
?>
Esto lo pueden probar acá.
El código en Javascript, gracias al Juque, modificado por mí.
//
// Validador de Rut
// Descargado desde http://www.juque.cl/
// Modificado por http://bredebs.net
//
function revisarDigito( crut )
{
var rutfinal="";
largo = crut.length;
if ( largo > 2 )
rut = crut;
else
rut = crut.charAt(0);
if ( rut == null)
return 0
var dvr = '0'
suma = 0
mul = 2
for (i= rut.length -1 ; i >= 0; i--)
{
suma = suma + rut.charAt(i) * mul
if (mul == 7)
mul = 2
else
mul++
}
res = suma % 11
if (res==1)
dvr = 'k'
else if (res==0)
dvr = '0'
else
{
dvi = 11-res
dvr = dvi + ""
}
rutfinal = crut+"-"+dvr;
alert("EL rut correcto es: "+rutfinal);
return rutfinal;
}
function Rut(t)
{
window.document.form1.rut.value = revisarDigito(t).toUpperCase();
return false;
}
claro que para eso necesitan este HTML [del juque
]
</pre> <head> <script type="text/javascript" src="validarut.js"></script> </head> <body> <form name="form1" onSubmit="javascript:return Rut(document.form1.rut.value)"> Rut : <input type="text" name="rut" value="" /> <input type="submit" value="Validar RUT" /> </form> </body> </html></pre> <pre>
lo puedes ver funcionando acá.
Ahora, como me gusta C# acá va el demo en Ejecutable Escritorio, y acá en Sitio Web. Pronto
El código en C# [Obtenido desde acá]
private string digitoVerificador(int rut)
{
int Digito;
int Contador;
int Multiplo;
int Acumulador;
string RutDigito;
Contador = 2;
Acumulador = 0;
while (rut != 0)
{
Multiplo = (rut % 10) * Contador;
Acumulador = Acumulador + Multiplo;
rut = rut / 10;
Contador = Contador + 1;
if ( Contador == 8 )
{
Contador = 2;
}
}
Digito = 11 - (Acumulador % 11);
RutDigito = Digito.ToString().Trim();
if (Digito == 10)
{
RutDigito = "K";
}
if (Digito == 11)
{
RutDigito = "0";
}
return (RutDigito);
}
