type texto tag obtener not name change capturar cambiar jquery number-formatting

texto - jquery is not



Agregue coma a los números cada tres dígitos (9)

¿Cómo puedo formatear números usando un separador de coma cada tres dígitos usando jQuery?

Por ejemplo:

╔═══════════╦═════════════╗ ║ Input ║ Output ║ ╠═══════════╬═════════════╣ ║ 298 ║ 298 ║ ║ 2984 ║ 2,984 ║ ║ 297312984 ║ 297,312,984 ║ ╚═══════════╩═════════════╝


Una solución más completa

El núcleo de esto es la llamada de replace . Hasta el momento, no creo que ninguna de las soluciones propuestas maneje todos los casos siguientes:

  • Enteros: 1000 => ''1,000''
  • Cadenas: ''1000'' => ''1,000''
  • Para cuerdas:
    • Conserva los ceros después del decimal: 10000.00 => ''10,000.00''
    • Descarta los ceros a la izquierda antes del decimal: ''01000.00 => ''1,000.00''
    • No agrega comas después del decimal: ''1000.00000'' => ''1,000.00000''
    • Conservas principales - o + : ''-1000.0000'' => ''-1,000.000''
    • Devuelve, sin modificaciones, cadenas que contienen no dígitos: ''1000k'' => ''1000k''

La siguiente función hace todo lo anterior.

addCommas = function(input){ // If the regex doesn''t match, `replace` returns the string unmodified return (input.toString()).replace( // Each parentheses group (or ''capture'') in this regex becomes an argument // to the function; in this case, every argument after ''match'' /^([-+]?)(0?)(/d+)(.?)(/d+)$/g, function(match, sign, zeros, before, decimal, after) { // Less obtrusive than adding ''reverse'' method on all strings var reverseString = function(string) { return string.split('''').reverse().join(''''); }; // Insert commas every three characters from the right var insertCommas = function(string) { // Reverse, because it''s easier to do things from the left var reversed = reverseString(string); // Add commas every three characters var reversedWithCommas = reversed.match(/.{1,3}/g).join('',''); // Reverse again (back to normal) return reverseString(reversedWithCommas); }; // If there was no decimal, the last capture grabs the final digit, so // we have to put it back together with the ''before'' substring return sign + (decimal ? insertCommas(before) + decimal + after : insertCommas(before + after)); } ); };

Podrías usarlo en un plugin jQuery como este:

$.fn.addCommas = function() { $(this).each(function(){ $(this).text(addCommas($(this).text())); }); };


@Paul Creasey tenía la solución más simple como la expresión regular, pero aquí es como un simple complemento jQuery:

$.fn.digits = function(){ return this.each(function(){ $(this).text( $(this).text().replace(/(/d)(?=(/d/d/d)+(?!/d))/g, "$1,") ); }) }

Podrías usarlo así:

$("span.numbers").digits();


Algo así si le gusta la expresión regular, no está seguro de la sintaxis exacta para reemplazarla.

MyNumberAsString.replace(/(/d)(?=(/d/d/d)+(?!/d))/g, "$1,");


Esto no es jQuery, pero funciona para mí. Tomado de este sitio .

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; }


Podría usar Number.toLocaleString() :

var number = 1557564534; document.body.innerHTML = number.toLocaleString(); // 1,557,564,534


Puedes probar NumberFormatter .

$(this).format({format:"#,###.00", locale:"us"});

También admite diferentes configuraciones regionales, incluido, por supuesto, EE. UU.

Aquí hay un ejemplo muy simplificado de cómo usarlo:

<html> <head> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="jquery.numberformatter.js"></script> <script> $(document).ready(function() { $(".numbers").each(function() { $(this).format({format:"#,###", locale:"us"}); }); }); </script> </head> <body> <div class="numbers">1000</div> <div class="numbers">2000000</div> </body> </html>

Salida:

1,000 2,000,000


También puede consultar el plugin jQuery FormatCurrency (del que soy el autor); también tiene soporte para múltiples configuraciones regionales, pero puede tener la sobrecarga del soporte de divisa que no necesita.

$(this).formatCurrency({ symbol: '''', roundToDecimalPlace: 0 });


Use la función Número ();

$(function() { var price1 = 1000; var price2 = 500000; var price3 = 15245000; $("span#s1").html(Number(price1).toLocaleString(''en'')); $("span#s2").html(Number(price2).toLocaleString(''en'')); $("span#s3").html(Number(price3).toLocaleString(''en'')); console.log(Number(price).toLocaleString(''en'')); });

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <span id="s1"></span><br /> <span id="s2"></span><br /> <span id="s3"></span><br />


Respuesta 2016:

Javascript tiene esta función, por lo que no necesita Jquery.

yournumber.toLocaleString("en");