Foros del Web » Programando para Internet » Javascript »

Completar con Ceros a Izquierda

Estas en el tema de Completar con Ceros a Izquierda en el foro de Javascript en Foros del Web. Hola a todos, alguien conoce alguna function que me complete con 0 (ceros ) a Izquierda un campo de Texto Como por ejemplo la longitud ...
  #1 (permalink)  
Antiguo 01/12/2006, 07:27
Avatar de Chuty  
Fecha de Ingreso: noviembre-2002
Ubicación: el bar de la esquina
Mensajes: 609
Antigüedad: 21 años, 5 meses
Puntos: 2
Completar con Ceros a Izquierda

Hola a todos, alguien conoce alguna function que me complete con 0 (ceros ) a Izquierda un campo de Texto
Como por ejemplo la longitud maxima es de 10 caracteres y me ingresan 2535 la function me daje el campo 0000002535

desde ya muchas gracias y saludos a todos
  #2 (permalink)  
Antiguo 01/12/2006, 08:27
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Fijate esto:
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>ceros izq</title>
<script>
function numero(num){
	numtmp='"'+num+'"';
	largo=numtmp.length-2;
	numtmp=numtmp.split('"').join('');
	if(largo==10)return numtmp;
	ceros='';
	pendientes=10-largo;
	for(i=0;i<pendientes;i++)ceros+='0';
	return ceros+numtmp;

}

</script>
</head>

<body>
<script>
alert(numero(066));
alert(numero(0123456789));
alert(numero(1234567890));
</script>
</body>
</html>
  #3 (permalink)  
Antiguo 01/12/2006, 09:10
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola Chuty

Otro código que te puede servir:
Código:
<html>
<head>
<script type="text/javascript">
function ponerCeros(obj) {
  while (obj.value.length<10)
    obj.value = '0'+obj.value;
}
</script>
</head>
<body>
<input type="text" onblur="ponerCeros(this)" />
</body>
</html>
  #4 (permalink)  
Antiguo 01/12/2006, 10:01
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Una variante recursiva (se ven pocas cosas recursivas con lo práctico que es) ...

function ajustar(tam, num) {
if (num.toString().length <= tam) return ajustar(tam, "0" + num)
else return num;
}

ejemplo:
alert(ajustar(5, 25))

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Última edición por caricatos; 01/12/2006 a las 10:03 Razón: Un detallito...
  #5 (permalink)  
Antiguo 01/12/2006, 10:28
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Ja! Muy buena Caricatos!!! (va derecho a mi lista de cosas útiles)
  #6 (permalink)  
Antiguo 01/12/2006, 16:44
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Cita:
Iniciado por Panino5001 Ver Mensaje
Ja! Muy buena Caricatos!!! (va derecho a mi lista de cosas útiles)
Hola:

El uso de métodos recursivos es en ocasiones muy buena idea y en mi opinión muy didácticos, pero no siempre recomendables... para este caso (añadí mi mensaje con intención didáctica) la respuesta de JavierB es mucho mejor porque usa menos recursos (memoria)... aunque una recursión de 10 niveles también puede ser buena solución...

Casos muy buenos para el uso de métodos recursivos son factoriales, nº's de fibonacci, torres de hanoi... su estudio es muy recomendable.

Saludetes
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:37.