Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/10/2009, 04:19
Avatar de luckystrikede11
luckystrikede11
 
Fecha de Ingreso: octubre-2009
Ubicación: Concepcion, Chile
Mensajes: 240
Antigüedad: 14 años, 7 meses
Puntos: 17
Respuesta: Dar un formato a un texto ingresado a formulario de texto

Cita:
Iniciado por petereta Ver Mensaje
Necesito ayuda para el problema que tengo.
Hay un dato que los usuarios deben ingresar en un formulario de texto. La idea es que el usuario solo ingrese un valor como 11234567k y que el programa lo transforme en 11.234.567-K. Si alguien me puede ayudar, se lo agradecere mucho.

Con javascript lo puedes solucionar.. este es un ejemplo que usan los bancos para validar rut

por ejemplo: si el usuario ingresa: 222222222, lo convierte en 22.222.222-2

y lo valida en el caso que falte o se excede de un digito.

Código:
<script type="text/javascript" language="JavaScript">			
function validacampos(){
	var rut;
	rut = document.frm.rut.value
	nombres = document.frm.nombres.value;
	apellidos = document.frm.apellidos.value;
		if( rut == ""){
			alert("Ingrese un RUT");
			return false;
		}
		
		if ( !validarut(document.frm.rut.value) ){ 
		return false;
		}

		return true;
	}
function validarut(rut){
	var tmpstr = "";
	var largo;
	var i;
	var j;
	var cnt;
	for ( i=0; i < rut.length ; i++ )
		if ( rut.charAt(i) != ' ' && rut.charAt(i) != '.' && rut.charAt(i) != '-' )
	tmpstr = tmpstr + rut.charAt(i);
	rut = tmpstr;
	largo = rut.length;
	// [VARM+]
	tmpstr = "";
	for ( i=0; rut.charAt(i) == '0' ; i++ );
		for (; i < rut.length ; i++ )
			tmpstr = tmpstr + rut.charAt(i);
	rut = tmpstr;
	largo = rut.length;
	// [VARM-]
	if ( largo < 2 ){
		alert("Debe ingresar el RUT completo.");
		document.frm.rut.focus();
		document.frm.rut.select();
		return false;
	}
	for (i=0; i < largo ; i++ ){
		if ( rut.charAt(i) != "0" && rut.charAt(i) != "1" && rut.charAt(i) !="2" && rut.charAt(i) != "3" && rut.charAt(i) != "4" && rut.charAt(i) !="5" && rut.charAt(i) != "6" && rut.charAt(i) != "7" && rut.charAt(i) !="8" && rut.charAt(i) != "9" && rut.charAt(i) !="k" && rut.charAt(i) != "K" ){
		alert("El RUT no es valido.");
		document.frm.rut.focus();
		document.frm.rut.select();
		return false;
		}
	}
	var invertido = "";
	for ( i=(largo-1),j=0; i>=0; i--,j++ )
		invertido = invertido + rut.charAt(i);
	var drut = "";
	drut = drut + invertido.charAt(0);
	drut = drut + '-';
	cnt = 0;
	for ( i=1,j=2; i<largo; i++,j++ ){
		if ( cnt == 3 ){
			drut = drut + '.';
			j++;
			drut = drut + invertido.charAt(i);
			cnt = 1;
		}
		else{
			drut = drut + invertido.charAt(i);
			cnt++;
		}
	}
	invertido = "";
	for ( i=(drut.length-1),j=0; i>=0; i--,j++ )
		invertido = invertido + drut.charAt(i);
	document.frm.rut.value = invertido;
	if ( comprueba_dv(rut) )
		return true;
	return false;
}

function comprueba_dv( crut ){
	var largo;
	var rut;
	var dv;
	var rut;
	var suma;
	var mul;
	var dvr;
	var dvi;
	var res;
	var i;
	largo = crut.length;
	if ( largo < 2 ){
		alert("Debe ingresar el RUT completo.");
		document.frm.rut.focus();
		document.frm.rut.select();
		return false;
	}
	if ( largo > 2 )
		rut = crut.substring(0, largo - 1);
	else
		rut = crut.charAt(0);
		dv = crut.charAt(largo-1);
		comprueba_cdv( dv );
	if ( rut == null || dv == 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 + "";
		}
	if ( dvr != dv.toLowerCase() ){
		alert("EL RUT es incorrecto.");
		document.frm.rut_aux.focus();
		document.frm.rut_aux.value = "";
		return false;
	}
	return true;
}

function comprueba_cdv( dvr ){
	var dv;
	dv = dvr + "";
	if ( dv != '0' && dv != '1' && dv != '2' && dv != '3' && dv != '4' && dv != '5' && dv != '6' && dv != '7' && dv != '8' && dv != '9' && dv != 'k'  && dv != 'K'){
		alert("Debe ingresar un digito verificador valido.");
		document.frm.rut_aux.focus();
		document.frm.rut_aux.select();
		return false;
	}
	return true;
}
</script>
formulario

Código:
<form name="frm" method="post" action="">
<input name="rut" type="text" id="rut" size="14" maxlength="14"  onchange="validarut(document.frm.rut.value);" />
<input type="submit" name="registrar" value="Registrar" id="registrar" onclick="return validacampos();" />
</form>
espero que te sirva.. saludos