Cómo imprimir un número con comas como separadores de miles en JavaScript

Estoy intentando imprimir un número entero en JavaScript con comas como separadores de miles. Por ejemplo, quiero mostrar el número 1234567 como "1,234,567". ¿Cómo haría yo para hacer esto?

Así es como lo estoy haciendo:

function numberWithCommas(x) {
    x = x.toString();
    var pattern = /(-?\d+)(\d{3})/;
    while (pattern.test(x))
        x = x.replace(pattern, "$1,$2");
    return x;
}

¿Existe una forma más sencilla o elegante de hacerlo? Sería bueno que también funcionara con flotadores, pero eso no es necesario. No es necesario que sea específico de la configuración regional para decidir entre puntos y comas.

preguntado el 24 de mayo de 10 a las 20:05

Número (x) .toLocaleString () -

@Boffin, esto no funciona para el número de tipo de entrada (debido a las comas); en la respuesta aceptada, podemos reemplazar la coma por el punto y el número de tipo de entrada funcionará -

Vale la pena señalar que Number.prototype.toLocaleString aun no funciona en Safari, en 2016. En lugar de formatear realmente el número, simplemente lo devuelve, no arroja ningún error. Tener la palma de la mano más grande hoy como resultado de eso ... #goodworkApple -

Sin embargo, parece funcionar en iOS Safari. -

toLocaleString es inconsistente y no debe usarse. Por ejemplo, en Firefox, esto devolverá 1,234 pero en IE esto agregará decimales: 1,234.00 -

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.