Comment puis-je formater des nombres en utilisant un séparateur virgule tous les trois chiffres en utilisant jQuery?
Par exemple:
╔═══════════╦═════════════╗
║ Input ║ Output ║
╠═══════════╬═════════════╣
║ 298 ║ 298 ║
║ 2984 ║ 2,984 ║
║ 297312984 ║ 297,312,984 ║
╚═══════════╩═════════════╝
jquery
number-formatting
Steve
la source
la source
Réponses:
@Paul Creasey avait la solution la plus simple comme regex, mais ici c'est comme un simple plugin jQuery:
Vous pouvez ensuite l'utiliser comme ceci:
la source
$.fn.digits = function(){ return this.each(function(){ $(this).val( $(this).val().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") ); }) }
$.digits = function() { ... };
.number.toLocaleString("en");
Vous pouvez utiliser
Number.toLocaleString()
:la source
var n = 26787.89 var myObjCurrency = { style: "currency", currency: "USD", currencyDisplay : "symbol" } n.toLocaleString("en-US", myObjCurrency));
Quelque chose comme ça si vous êtes dans regex, pas sûr de la syntaxe exacte pour le tho de remplacement!
la source
Vous pouvez essayer NumberFormatter .
Il prend également en charge différents paramètres régionaux, y compris bien sûr les États-Unis.
Voici un exemple très simplifié de son utilisation:
Production:
la source
Ce n'est pas jQuery, mais cela fonctionne pour moi. Tiré de ce site .
la source
Utilisez la fonction Number ();
la source
Réponse de 2016:
Javascript a cette fonction, donc pas besoin de Jquery.
la source
Une solution plus approfondie
Le cœur de tout cela est l'
replace
appel. Jusqu'à présent, je ne pense pas qu'aucune des solutions proposées gère tous les cas suivants:1000 => '1,000'
'1000' => '1,000'
10000.00 => '10,000.00'
'01000.00 => '1,000.00'
'1000.00000' => '1,000.00000'
-
ou+
:'-1000.0000' => '-1,000.000'
'1000k' => '1000k'
La fonction suivante fait tout ce qui précède.
Vous pouvez l'utiliser dans un plugin jQuery comme celui-ci:
la source
Vous pouvez également consulter le plugin jquery FormatCurrency (dont je suis l'auteur); il prend également en charge plusieurs paramètres régionaux, mais peut avoir la charge de la prise en charge des devises dont vous n'avez pas besoin.
la source
Voici mon javascript, testé sur firefox et chrome uniquement
la source
Un moyen très simple consiste à utiliser la
toLocaleString()
fonctionla source
Tu peux essayer ça, ça marche pour moi
la source