2009-04-07 17 views
15

Estoy tratando de formatear varios números en mi página. Estos números representan un precio, un cambio en el precio o un porcentaje. Sé que Javascript tiene funciones para limitar el número de decimales, pero ¿hay algún soporte para otros tipos de formato, como agrupar números con comas, controlar si se muestra +/-, etc.? Esto es lo que tengo hasta ahora:Javascript: ¿Forma más fácil de formatear números?

var FORMATTER = { 
    price  : function(value) { return '$' + value.toFixed(2); }, 
    pricePer : function(value) { return (value * 100).toFixed(2) + '%'; }, 
    priceChg : function(value) { return (value >= 0 ? '+' : '-') + '$' + Math.abs(value).toFixed(2); } 
}; 

Funciona bien, pero quisiera agregar puntos al formateador 'precio', y se puede ver que hay un corte en el formateador de la 'priceChg' donde intento para mover el signo +/- delante del signo '$'.

Básicamente, espero que haya alguna biblioteca (jQuery está bien) que emule la clase DecimalFormat de Java.

+0

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat – zloctb

Respuesta

16

Ahí está el NumberFormatter plugin de jQuery, detalles a continuación:

https://code.google.com/p/jquery-numberformatter/

desde el enlace anterior:

Este plugin es un plugin de NumberFormatter . Es probable que el formato de número sea familiar para cualquiera que haya trabajado con código del lado del servidor como Java o PHP y que haya trabajado con la internacionalización .

EDITAR: Reemplazó el enlace por uno más directo.

+0

Probablemente deberías hacer un enlace a http://plugins.jquery.com/project/numberformatter en su lugar. –

+0

Tienes razón, gracias por eso. Hecho. – karim79

+0

Genial, esto es exactamente lo que estaba buscando. –

4

No, no hay compatibilidad incorporada para el formateo de números, pero Google buscará montones de fragmentos de código que lo harán por usted.

EDIT: Me perdí la última frase de tu publicación. Pruebe http://code.google.com/p/jquery-utils/wiki/StringFormat para obtener una solución jQuery.

+0

No está pidiendo soporte integrado, está pidiendo una biblioteca. –

+2

La publicación dice "Sé que Javascript tiene funciones para limitar el número de decimales, pero ¿hay algún soporte para otros tipos de formato?". Lee como si estuviera pidiendo soporte integrado, si no lees toda la publicación como yo :) – glomad

1

También pruebe dojo.number que tiene soporte de localización incorporado. Es un análogo mucho más cerca de Java NumberFormat/DecimalFormat

3

acaban de terminar una biblioteca de JS para los números de formato Numeral.js. Maneja decimales, dólares, porcentajes e incluso formateo de tiempo.

+0

Gracias adamwdraper!Necesitaba una solución que no implicara jQuery. –

Cuestiones relacionadas