Jak mogę sformatować liczby za pomocą separatora przecinków co trzy cyfry za pomocą jQuery?
Na przykład:
╔═══════════╦═════════════╗
║ Input ║ Output ║
╠═══════════╬═════════════╣
║ 298 ║ 298 ║
║ 2984 ║ 2,984 ║
║ 297312984 ║ 297,312,984 ║
╚═══════════╩═════════════╝
jquery
number-formatting
Steve
źródło
źródło
Odpowiedzi:
@Paul Creasey miał najprostsze rozwiązanie jako wyrażenie regularne, ale tutaj jest to prosta wtyczka jQuery:
Możesz wtedy użyć tego w następujący sposób:
źródło
$.fn.digits = function(){ return this.each(function(){ $(this).val( $(this).val().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") ); }) }
$.digits = function() { ... };
.number.toLocaleString("en");
Możesz użyć
Number.toLocaleString()
:źródło
var n = 26787.89 var myObjCurrency = { style: "currency", currency: "USD", currencyDisplay : "symbol" } n.toLocaleString("en-US", myObjCurrency));
Coś takiego, jeśli interesujesz się wyrażeniem regularnym, ale nie jesteś pewien dokładnej składni zamiany!
źródło
Możesz spróbować NumberFormatter .
Obsługuje również różne lokalizacje, w tym oczywiście USA.
Oto bardzo uproszczony przykład, jak go używać:
Wynik:
źródło
To nie jest jQuery, ale dla mnie działa. Zaczerpnięte z tej strony .
źródło
Użyj funkcji Number ();
źródło
Odpowiedź 2016:
Javascript ma tę funkcję, więc nie ma potrzeby korzystania z Jquery.
źródło
Dokładniejsze rozwiązanie
Sednem tego jest
replace
wezwanie. Jak dotąd nie sądzę, aby którekolwiek z proponowanych rozwiązań obejmowało wszystkie następujące przypadki:1000 => '1,000'
'1000' => '1,000'
10000.00 => '10,000.00'
'01000.00 => '1,000.00'
'1000.00000' => '1,000.00000'
-
lub+
:'-1000.0000' => '-1,000.000'
'1000k' => '1000k'
Poniższa funkcja wykonuje wszystkie powyższe czynności.
Możesz go użyć we wtyczce jQuery w następujący sposób:
źródło
Możesz również spojrzeć na wtyczkę jquery FormatCurrency (której jestem autorem); obsługuje również wiele lokalizacji, ale może mieć narzut w postaci obsługi waluty, której nie potrzebujesz.
źródło
Oto mój javascript, przetestowany tylko na Firefox i Chrome
źródło
Bardzo prostym sposobem jest użycie
toLocaleString()
funkcjiźródło
Możesz spróbować, to działa dla mnie
źródło