Seguramente ya te encontraste en la necesidad de ponerle formato a los números separadores de miles por ejemplo, si ese es tu problema en este momento. Entonces te digo que estas en el lugar correcto, pues acá les dejo una Función para dar formato a números en Javascript, en otro artículo ya les he mostrado cómo hacer esto en Java, si quieres saber te invito a que visites el post Puntos decimales y separador de miles en Java.
Bueno esta función JavaScript lo que hace es ponerle los puntos separadores de miles y los puntos decimales a un número dado. La función es la siguiente…
var formatNumber = { separador: ".", // separador para los miles sepDecimal: ',', // separador para los decimales formatear:function (num){ num +=''; var splitStr = num.split('.'); var splitLeft = splitStr[0]; var splitRight = splitStr.length > 1 ? this.sepDecimal + splitStr[1] : ''; var regx = /(\d+)(\d{3})/; while (regx.test(splitLeft)) { splitLeft = splitLeft.replace(regx, '$1' + this.separador + '$2'); } return this.simbol + splitLeft +splitRight; }, new:function(num, simbol){ this.simbol = simbol ||''; return this.formatear(num); } }
La forma de utilizar esta función es bien simples.
formatNumber.new(123456779.18, "$") // retorna "$123.456.779,18" formatNumber.new(123456779.18) // retorna "123.456.779,18" formatNumber.new(123456779) // retorna "$123.456.779"
Buenas,
Funciona perfecto en chrome y en firefox,. pero en IE 8 sale el siguiente error.
se esperaba un identificador, cadena o numero, precisamente da error en esta linea de código:
},
new:function(num, simbol){
¿Ha alguien le ha pasado y ha podido solucionarlo?
Dany Ruiz, al parecer el operador «new» está reservado en IE8. Intenta cambiar el nombre de la función «new» por una palabra no reservada. Al parecer IE es más estricto y no es tan intuitivo que Firefox y Chrome.
Suerte!
var splitRight = splitStr.length > 1 ? this.sepDecimal + splitStr[1] : »;
Da error en esta linea
En el chrome me estaba marcando un error al tenerla junto con Jquery (por otras funciones que tengo) si a alguien le pasa aqui dejo el ajuste (solo cambien el > por > y por cuestioner regionales el separador de miles lo puse en «,»)
//Funcion que formatea el numero para mostrarlo con separador de miles.
var formatNumber = {
separador: «,», // separador para los miles
sepDecimal: ‘.’, // separador para los decimales
formatear:function (num){
num +=»;
var splitStr = num.split(‘.’);
var splitLeft = splitStr[0];
var splitRight = splitStr.length > 1 ? this.sepDecimal + splitStr[1] : »;
var regx = /(\d+)(\d{3})/;
while (regx.test(splitLeft)) {
splitLeft = splitLeft.replace(regx, ‘$1’ + this.separador + ‘$2’);
}
return this.simbol + splitLeft +splitRight;
},
format:function(num, simbol){
this.simbol = simbol ||»;
return this.formatear(num);
}
}
Hola soy nuevo en esto, quiero colocar un campo de texto y que me devuelva el numero formateado, como hago para llamar la función?
Tengo este formulario y quiero que al darle al botón enviar me muestre el numero formateado
Monto:
Gracias de antemano espero me puedan ayudar
asignase lo con id de la etiqueta ejemplo $(‘#idEtiqueta’).val(valorYaFormatiado);
exelente estoy impresionado
como se puede hacer para que lo vaya mostrando mientras se tipea el numero en un input
hola,soy nuevo en esto
estoy intentando utilizar la función en un cuadro de texto , pero no estoy entendiendo como podría llamar a la función.
si me podrías dar una ayuda por favor
gracias