separar quitar puntos punto por poner numeros numero miles mil formato con comas coma javascript jquery formatting numbers

quitar - separar numero por miles javascript



agregar comas a un nĂºmero en jQuery (10)

Tengo estos números

10999 y 8094 y 456

Y todo lo que quiero hacer es agregar una coma en el lugar correcto si es necesario así que se ve así

10,999 y 8,094 y 456

Todos están dentro de una etiqueta de ap como esta <p class="points">10999</p> etc.

Se puede hacer?

Lo intenté aquí con la ayuda de otras publicaciones http://jsfiddle.net/pdWTU/1/ pero parece que no funciona

Gracias

Jamie

ACTUALIZAR

Enredado un poco y se las arregló para descubrirlo aquí http://jsfiddle.net/W5jwY/1/

Ir a ver el nuevo plugin Globalization para una mejor forma de hacerlo

Gracias

Jamie


Aquí está mi versión coffeescript del violín de @ baacke en un comentario a @Timothy Perez

class Helpers @intComma: (number) -> # remove any existing commas comma = /,/g val = number.toString().replace comma, '''' # separate the decimals valSplit = val.split ''.'' integer = valSplit[0].toString() expression = /(/d+)(/d{3})/ while expression.test(integer) withComma = "$1,$2" integer = integer.toString().replace expression, withComma # recombine with decimals if any val = integer if valSplit.length == 2 val = "#{val}.#{valSplit[1]}" return val



Eche un vistazo a Numeral.js . Puede formatear números, moneda, porcentajes y tiene soporte para localización.


Funciona en todos los navegadores, esto es todo lo que necesita.

function commaSeparateNumber(val){ while (/(/d+)(/d{3})/.test(val.toString())){ val = val.toString().replace(/(/d+)(/d{3})/, ''$1''+'',''+''$2''); } return val; }

Escribió esto para ser compacto, y al punto, gracias a regex. Esto es JS directo, pero puedes usarlo en tu jQuery así:

$(''#elementID'').html(commaSeparateNumber(1234567890));

o

$(''#inputID'').val(commaSeparateNumber(1234567890));


La respuesta de Timothy Pirez fue muy correcta, pero si necesita reemplazar los números con comas Inmediatamente como usuario escribe en el campo de texto, puede usar la función Keyup.

$(''#textfield'').live(''keyup'', function (event) { var value=$(''#textfield'').val(); if(event.which >= 37 && event.which <= 40){ event.preventDefault(); } var newvalue=value.replace(/,/g, ''''); var valuewithcomma=Number(newvalue).toLocaleString(''en''); $(''#textfield'').val(valuewithcomma); }); <form><input type="text" id="textfield" ></form>


Otra forma de hacerlo:

function addCommas(n){ var s = "", r; while (n) { r = n % 1000; s = r + s; n = (n - r)/1000; s = (n ? "," : "") + s; } return s; } alert(addCommas(12345678));


Supongo que estás haciendo algún tipo de localización, así que echa un vistazo a este script .


otro enfoque:

function addCommas(nStr) { nStr += ''''; x = nStr.split(''.''); x1 = x[0]; x2 = x.length > 1 ? ''.'' + x[1] : ''''; var rgx = /(/d+)(/d{3})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, ''$1'' + '','' + ''$2''); } return x1 + x2; } var a = addCommas(10000.00); alert(a);

Otro plugin increíble: http://www.teamdf.com/web/jquery-number-format/178/


function delimitNumbers(str) { return (str + "").replace(//b(/d+)((/./d+)*)/b/g, function(a, b, c) { return (b.charAt(0) > 0 && !(c || ".").lastIndexOf(".") ? b.replace(/(/d)(?=(/d{3})+$)/g, "$1,") : b) + c; }); } alert(delimitNumbers(1234567890));


Number(10000).toLocaleString(''en''); // "10,000"