Vean esto. Formulario para validar RUT.
Hola a todos
Aquà les envÃo un código de obsequio. Está todo detallado, y si algo no está claro, hacedme las consultas por el foro ;-)
--------------------------------------------------
<html><head><title>Comprobar RUT</title>
<script language="javascript">
// Para mis amigos de programacion.net ;-)
// de Battlecat
// Ejemplo: RUT = 12.345.678-9
// * Variables del RUT *
// pnt1 = primer punto del RUT
// pnt2 = segundo punto del RUT
// aux = guardar el RUT ingresado porque la variable RUT, la descomponemos
//
// rut = cadena que descomponemos
// mls = cifra de millón (en este casi es 12 millones)
// mil = cifra de miles (en este caso es 345 miles)
// dcm = cifra de unidades (en este caso son 678 unidades)
// gun = guión. guardamos el caracter que se encuentra en el espacio
// donde deberÃa ir el guión del RUT, y después vemos si
// efectivamente, es el caracter de guión (-)
// ext = extensión. Verificamos si la extensión del RUT (en este caso 9)
// está en el rango 1-9, o es igual a k o K)
// * Variables de comprobación *
// vof1 = comprueba si la variable mls, tiene un valor comprendido entre el
// rango 00-99. En caso de ser asÃ, el valor de vof1 será "true". Al
// contrario, si es un carácter no numérico, tendrá el valor "false":
// vof2 = comprueba si pnt1 es igual al caracter -. Si es asÃ, vof2 será igual
// a "true", en caso contrario, tendrá el valor "false".
// vof3 = comprueba si el valor de mls está entre el valor 0-999. De ser asÃ,
// vof3 tendrá el valor "true", en caso de ser un valor no numérico
// vof3 serÃa "false".
// vof4 = comprueba si pnt2 es igual al caracter-. Si es asÃ, vof4 será igual
// a "true", en caso contrario, tendrá el valor "false".
// vof5 = comprueba si el valor de la variable dcm, está entre el rango 0-999.
// de ser asÃ, vof5 serÃa "true". Si dcm tiene un valor no numérico,
// vof5 será "false".
// vof6 = comprueba si el caracter número 11 del RUT, es igual al caracter -.
// Si es asÃ, vof6 valdrá "true", si no es asÃ, vof6 valdrá "false".
// vof7 = comprueba si la variable ext, tiene un valor comprendido entre en
// rango 1-9, si no es asÃ, comprueba si la extensión tiene el valor
// del caracter k o K.
function valida()
{
rut = document.form1.rut.value;
aux = rut;
mls = rut.substring(0,2); // mis = 12
rut = rut.substring(2);
pnt1 = rut.substring(0,1); // pnt1 = '.'
rut = rut.substring(1);
mil = rut.substring(0,3); // mil = 345
rut = rut.substring(3);
pnt2 = rut.substring(0,1); // pnt2 = '.'
rut = rut.substring(1);
dcm = rut.substring(0,3); // dcm = 678
rut = rut.substring(3);
gun = rut.substring(0,1); // gun = '-'
rut = rut.substring(1);
ext = rut.substring(0,1); // ext = 9
vof1 = (mls>=00 && mls<=99);
vof2 = (pnt1=='.');
vof3 = (mil>=0 && mil<=999);
vof4 = (pnt2=='.');
vof5 = (dcm>=0 && dcm<=999);
vof6 = (gun='-');
vof7 = (ext>=1 || ext=='k' || ext=='K');
tof = (vof1 && vof2 && vof3 && vof4 && vof5 && vof6 && vof7);
if(!tof){alert('Error: El RUT '+aux+' no es válido.');return false;}
else{alert('Gracias: El RUT se ha ingresado correctamente.');return true;}
}
</script></head>
<body>
<form name="form1">
<input name="rut" maxlength="12">
<input type="button" value="Validar" onclick="valida()">
</form></body></html>
--------------------------------------------------
CuÃdense mucho
Saludos a todo el foro
Atte Battlecat (Chile)
Aquà les envÃo un código de obsequio. Está todo detallado, y si algo no está claro, hacedme las consultas por el foro ;-)
--------------------------------------------------
<html><head><title>Comprobar RUT</title>
<script language="javascript">
// Para mis amigos de programacion.net ;-)
// de Battlecat
// Ejemplo: RUT = 12.345.678-9
// * Variables del RUT *
// pnt1 = primer punto del RUT
// pnt2 = segundo punto del RUT
// aux = guardar el RUT ingresado porque la variable RUT, la descomponemos
//
// rut = cadena que descomponemos
// mls = cifra de millón (en este casi es 12 millones)
// mil = cifra de miles (en este caso es 345 miles)
// dcm = cifra de unidades (en este caso son 678 unidades)
// gun = guión. guardamos el caracter que se encuentra en el espacio
// donde deberÃa ir el guión del RUT, y después vemos si
// efectivamente, es el caracter de guión (-)
// ext = extensión. Verificamos si la extensión del RUT (en este caso 9)
// está en el rango 1-9, o es igual a k o K)
// * Variables de comprobación *
// vof1 = comprueba si la variable mls, tiene un valor comprendido entre el
// rango 00-99. En caso de ser asÃ, el valor de vof1 será "true". Al
// contrario, si es un carácter no numérico, tendrá el valor "false":
// vof2 = comprueba si pnt1 es igual al caracter -. Si es asÃ, vof2 será igual
// a "true", en caso contrario, tendrá el valor "false".
// vof3 = comprueba si el valor de mls está entre el valor 0-999. De ser asÃ,
// vof3 tendrá el valor "true", en caso de ser un valor no numérico
// vof3 serÃa "false".
// vof4 = comprueba si pnt2 es igual al caracter-. Si es asÃ, vof4 será igual
// a "true", en caso contrario, tendrá el valor "false".
// vof5 = comprueba si el valor de la variable dcm, está entre el rango 0-999.
// de ser asÃ, vof5 serÃa "true". Si dcm tiene un valor no numérico,
// vof5 será "false".
// vof6 = comprueba si el caracter número 11 del RUT, es igual al caracter -.
// Si es asÃ, vof6 valdrá "true", si no es asÃ, vof6 valdrá "false".
// vof7 = comprueba si la variable ext, tiene un valor comprendido entre en
// rango 1-9, si no es asÃ, comprueba si la extensión tiene el valor
// del caracter k o K.
function valida()
{
rut = document.form1.rut.value;
aux = rut;
mls = rut.substring(0,2); // mis = 12
rut = rut.substring(2);
pnt1 = rut.substring(0,1); // pnt1 = '.'
rut = rut.substring(1);
mil = rut.substring(0,3); // mil = 345
rut = rut.substring(3);
pnt2 = rut.substring(0,1); // pnt2 = '.'
rut = rut.substring(1);
dcm = rut.substring(0,3); // dcm = 678
rut = rut.substring(3);
gun = rut.substring(0,1); // gun = '-'
rut = rut.substring(1);
ext = rut.substring(0,1); // ext = 9
vof1 = (mls>=00 && mls<=99);
vof2 = (pnt1=='.');
vof3 = (mil>=0 && mil<=999);
vof4 = (pnt2=='.');
vof5 = (dcm>=0 && dcm<=999);
vof6 = (gun='-');
vof7 = (ext>=1 || ext=='k' || ext=='K');
tof = (vof1 && vof2 && vof3 && vof4 && vof5 && vof6 && vof7);
if(!tof){alert('Error: El RUT '+aux+' no es válido.');return false;}
else{alert('Gracias: El RUT se ha ingresado correctamente.');return true;}
}
</script></head>
<body>
<form name="form1">
<input name="rut" maxlength="12">
<input type="button" value="Validar" onclick="valida()">
</form></body></html>
--------------------------------------------------
CuÃdense mucho
Saludos a todo el foro
Atte Battlecat (Chile)
compadre este programa esta bueno pero si me puedes ayudar te lo agradeceria caleta.Es lo mismo que esto pero en vez de validar tiene que entregar el digito, porfa respondeme
como lo puedo hacer sin ingresarle los puntos o sea 02258963-1.. que trato y no puedo hacerlo ...muchas gracias
Chequeen este Programa :
<html>
<head>
<script language="javascript">
function validar(formulario)
{
rut=formulario.rut.value;
var count=0;
var count2=0;
var factor=2;
var suma=0;
var sum=0;
var digito=0;
count2=rut.length - 1;
while(count < rut.length)
{
sum = factor * (parseInt(rut.substr(count2,1)));
suma = suma + sum;
sum=0;
count = count + 1;
count2 = count2 - 1;
factor = factor + 1;
if(factor > 7)
{
factor=2;
}
}
digito= 11 - (suma % 11)
if(digito==11)
{
digito=0;
}
if(digito==10)
{
digito="k";
}
if(digito==formulario.dig.value)
{
alert("Digito Verificador Coincide !!");
}
else
{
alert("Digito Verificador No Coincide !!");
}
}
</script>
</head>
<body onload="form.rut.focus(), form.rut.value='', form.dig.value=''" >
<center>
<form name="form">
<h2><b> Validar RUT </b></h2>
<input type="text" name="rut" size="9" maxlength="8"> - <input type="text" name="dig" size="1" maxlength="1"><br><br><br>
<input type="button" onclick="validar(this.form)" value="Validar Rut">
</form>
</center>
</body>
</html>
<html>
<head>
<script language="javascript">
function validar(formulario)
{
rut=formulario.rut.value;
var count=0;
var count2=0;
var factor=2;
var suma=0;
var sum=0;
var digito=0;
count2=rut.length - 1;
while(count < rut.length)
{
sum = factor * (parseInt(rut.substr(count2,1)));
suma = suma + sum;
sum=0;
count = count + 1;
count2 = count2 - 1;
factor = factor + 1;
if(factor > 7)
{
factor=2;
}
}
digito= 11 - (suma % 11)
if(digito==11)
{
digito=0;
}
if(digito==10)
{
digito="k";
}
if(digito==formulario.dig.value)
{
alert("Digito Verificador Coincide !!");
}
else
{
alert("Digito Verificador No Coincide !!");
}
}
</script>
</head>
<body onload="form.rut.focus(), form.rut.value='', form.dig.value=''" >
<center>
<form name="form">
<h2><b> Validar RUT </b></h2>
<input type="text" name="rut" size="9" maxlength="8"> - <input type="text" name="dig" size="1" maxlength="1"><br><br><br>
<input type="button" onclick="validar(this.form)" value="Validar Rut">
</form>
</center>
</body>
</html>
Hola Battlecat, gracias por el codigo que nos obsequiastes, lo he probado, pero no me acepta los rut que cominzan con una cifra, es decir,1.xxx.xxx-x, me lo acepta de esta manera 01.xxx.xxx-x, puedes ddecirme que se debe cambiar para arreglarlo, ya que los cambios que he hecho no me han funcionado bien del todo.
Saludos y gracias
yo2
Saludos y gracias
yo2