Foros del Web » Programando para Internet » Javascript »

Quiero un formato de numeros con solo separador de miles

Estas en el tema de Quiero un formato de numeros con solo separador de miles en el foro de Javascript en Foros del Web. Ok mi problema es este: tengo este codigo y me da el formato de numeros (mientras lo ingreso por teclas) con decimales y sus separadores ...
  #1 (permalink)  
Antiguo 13/09/2007, 16:24
 
Fecha de Ingreso: septiembre-2007
Mensajes: 1
Antigüedad: 16 años, 7 meses
Puntos: 0
Quiero un formato de numeros con solo separador de miles

Ok mi problema es este: tengo este codigo y me da el formato de numeros (mientras lo ingreso por teclas) con decimales y sus separadores de miles y decimales, pero solo deseo q lo haga para separar miles!! NO necesito los decimales y TAMPOCO los decimales, la cueston es q es notable q no soy lo q llaman un experto en javascript y necesito ayuda urgente, es para mi trabajo muchas gracias

<html>
<head>
<script language="JavaScript">
function currencyFormat(fld, milSep, decSep, e) {
var sep = 0;
var key = '';
var i = j = 0;
var len = len2 = 0;
var strCheck = '0123456789';
var aux = aux2 = '';
var whichCode = (window.Event) ? e.which : e.keyCode;
if (whichCode == 13) return true; // Enter
key = String.fromCharCode(whichCode); // Get key value from key code
if (strCheck.indexOf(key) == -1) return false; // Not a valid key
len = fld.value.length;
for(i = 0; i < len; i++)
if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;
aux = '';
for(; i < len; i++)
if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
aux += key;
len = aux.length;
if (len == 0) fld.value = '';
if (len == 1) fld.value = '0'+ decSep + '0' + aux;
if (len == 2) fld.value = '0'+ decSep + aux;
if (len > 2) {
aux2 = '';
for (j = 0, i = len - 3; i >= 0; i--) {
if (j == 3) {
aux2 += milSep;
j = 0;
}
aux2 += aux.charAt(i);
j++;
}
fld.value = '';
len2 = aux2.length;
for (i = len2 - 1; i >= 0; i--)
fld.value += aux2.charAt(i);
fld.value += decSep + aux.substr(len - 2, len);
}
return false;
}
</script>
</head>
<body>
<form>
Tipee un número:
<input type="text" name="test" length="15" onKeyPress="return(currencyFormat(this,',',event)) ">
</form>
</body>
</html>
  #2 (permalink)  
Antiguo 27/12/2010, 16:07
 
Fecha de Ingreso: noviembre-2010
Mensajes: 7
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Quiero un formato de numeros con solo separador de miles

Puede que esto te funcione:

Código HTML:
 function format(input)
        {
        var num = input.value.replace(/\./g,"");
        if(!isNaN(num)){
        num = num.toString().split("").reverse().join("").replace(/(?=\d*\.?)(\d{3})/g,'$1.');
        num = num.split("").reverse().join("").replace(/^[\.]/, "");
        input.value = num;
        }

        else{ alert("Solo se permiten numeros");
        input.value = input.value.replace(/[^\d\.]*/g,"");
        }
        }
y para llamarlo :
Código HTML:
 <input onkeyup="format(this)" onchange="format(this)"  class="TextBox" runat="server" id="txtMonto_" type="text" onkeypress="return validar(event)" /> 
Se que es tarde pero para que quede para otros :P
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 12:40.