Foros del Web » Programando para Internet » Javascript »

modificar para que acepte separador de decimales

Estas en el tema de modificar para que acepte separador de decimales en el foro de Javascript en Foros del Web. hola chicos, encontre este codigo muy interesante de ATLANTE: <HTML> <HEAD> <TITLE></TITLE> </HEAD> <script language="javascript"> <!-- function LP_data(){ var key=window.event.keyCode;//codigo de tecla. if (key < ...
  #1 (permalink)  
Antiguo 11/09/2006, 14:00
Avatar de chepi  
Fecha de Ingreso: abril-2005
Ubicación: Posadas - Misiones
Mensajes: 116
Antigüedad: 19 años, 1 mes
Puntos: 1
Exclamación modificar para que acepte separador de decimales

hola chicos, encontre este codigo muy interesante de ATLANTE:
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<script language="javascript">
<!--
function LP_data(){
var key=window.event.keyCode;//codigo de tecla.
if (key < 48 || key > 57){//si no es numero
window.event.keyCode=0;//anula la entrada de texto.
}}
-->
</script>

el mismo permite restringir la entrada a números unicamente, me viene re bien, pero necesitaria modificarlo para que también acepte la tecla del "punto" para poder separar los decimales.
¿Cómo puedo hacer esto?

1000 gracias
  #2 (permalink)  
Antiguo 11/09/2006, 14:16
Avatar de diegopedro  
Fecha de Ingreso: agosto-2006
Ubicación: Santiago
Mensajes: 120
Antigüedad: 17 años, 9 meses
Puntos: 0
//Mas en: http://javascript.espaciolatino.com/
//Objeto oNumero
function oNumero(numero)
{
//Propiedades
this.valor = numero || 0
this.dec = -1;
//Métodos
this.formato = numFormat;
this.ponValor = ponValor;
//Definición de los métodos
function ponValor(cad)
{
if (cad =='-' || cad=='+') return
if (cad.length ==0) return
if (cad.indexOf('.') >=0)
this.valor = parseFloat(cad);
else
this.valor = parseInt(cad);
}
function numFormat(dec, miles)
{
var num = this.valor, signo=3, expr;
var cad = ""+this.valor;
var ceros = "", pos, pdec, i;
for (i=0; i < dec; i++)
ceros += '0';
pos = cad.indexOf('.')
if (pos < 0)
cad = cad+"."+ceros;
else
{
pdec = cad.length - pos -1;
if (pdec <= dec)
{
for (i=0; i< (dec-pdec); i++)
cad += '0';
}
else
{
num = num*Math.pow(10, dec);
num = Math.round(num);
num = num/Math.pow(10, dec);
cad = new String(num);
}
}
pos = cad.indexOf('.')
if (pos < 0) pos = cad.lentgh
if (cad.substr(0,1)=='-' || cad.substr(0,1) == '+')
signo = 4;
if (miles && pos > signo)
do{
expr = /([+-]?\d)(\d{3}[\.\,]\d*)/
cad.match(expr)
cad=cad.replace(expr, RegExp.$1+','+RegExp.$2)
}
while (cad.indexOf(',') > signo)
if (dec<0) cad = cad.replace(/\./,'')
return cad;
}
}//Fin del objeto oNumero:
  #3 (permalink)  
Antiguo 11/09/2006, 14:16
Avatar de diegopedro  
Fecha de Ingreso: agosto-2006
Ubicación: Santiago
Mensajes: 120
Antigüedad: 17 años, 9 meses
Puntos: 0
<body>
< script language="Javascript">
var numero = new oNumero(12345)
document.write("El número: " + numero.valor+'<br>')
document.write("Formateado queda: ")
document.write(numero.formato(2, true)
< /script>
< /body>
  #4 (permalink)  
Antiguo 11/09/2006, 14:17
Avatar de diegopedro  
Fecha de Ingreso: agosto-2006
Ubicación: Santiago
Mensajes: 120
Antigüedad: 17 años, 9 meses
Puntos: 0
Cuando muestres la página con este código en pantalla el explorador te mostrará:
El número: 12345
Formateado queda: 12,345.00

Pues le hemos indicado que formatee el número 12345 con 2 decimales y separador de miles.
  #5 (permalink)  
Antiguo 11/09/2006, 14:17
Avatar de diegopedro  
Fecha de Ingreso: agosto-2006
Ubicación: Santiago
Mensajes: 120
Antigüedad: 17 años, 9 meses
Puntos: 0
Esta en http://javascript.espaciolatino.com/...ormateanum.htm

Aqui te envio una tabla de ascii para colocar en if (key < 48 || key > 57)

http://www.abcdatos.com/utiles/ascii.html
  #6 (permalink)  
Antiguo 12/09/2006, 08:18
Avatar de chepi  
Fecha de Ingreso: abril-2005
Ubicación: Posadas - Misiones
Mensajes: 116
Antigüedad: 19 años, 1 mes
Puntos: 1
diegopedro sos un !!
  #7 (permalink)  
Antiguo 12/09/2006, 08:45
Avatar de diegopedro  
Fecha de Ingreso: agosto-2006
Ubicación: Santiago
Mensajes: 120
Antigüedad: 17 años, 9 meses
Puntos: 0
No es por nada, espero te sirva
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 18:30.