CÓMO: Ver el dígito verificador de un Rut

Miércoles, Junio 10, 2009 16:22
Posted in category Sin categoría

Hace 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 :P ]

</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);
}

Descargar acá en C# [escritorio, .Net FW 2.0]

You can leave a response, or trackback from your own site.

Leave a Reply