Number.prototype.toLocaleString()

Metoda toLocaleString() zwraca 艂a艅cuch znak贸w przedstawiaj膮cy dany numer w formacie wybranej lokalizacji.

Nowe argumenty - lokalizacje i opcje - pozwalaj膮 na wybranie lokalizacji w jakiej ma zosta膰 przedstawiona liczba. Starsza implementacja, kt贸ra nie posiada艂a tych argument贸w, zwraca艂a 艂a艅cuch znak贸w zale偶ny od implementacji danego 艣rodowiska.

Sk艂adnia

numObj.toLocaleString([lokalizacje [, opcje]])

Parametry

W sekcji kompatybilno艣ci mo偶esz sprawdzi膰, kt贸re przegl膮darki obs艂uguj膮 argumenty lokalizacji i opcji . W sekcji Przyk艂ad: Sprawdzanie obs艂ugi argument贸w lokalizacji i opcji rozpisane s膮 sposoby na przetestowanie obs艂ugiwanych przez przegl膮dark臋 argument贸w tej metody.

Info: ECMAScript Internationalization API, zaimplementowane w Firefoxie 29, dodaje obs艂ug臋 parametrylokalizacje do metodyNumber.toLocaleString(). Je艣li argument nie zostanie podany (undefined) metoda przyjmi臋 lokalizacj臋 systemu operacyjnego. Poprzednie wersje Firefoxa zwraca艂y liczby z lokalizacji Western Arabic. Zmiana zostala zg艂oszona jako regresja rzutuj膮ca na wsteczn膮 kompatybilno艣膰 metody, i wkr贸tce zostanie naprawiona. (b艂膮d 999003)

{{page('/pl-PL/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat', 'Parameters')}}

Zwracana warto艣膰

艁a艅cuch znak贸w przedstawiaj膮cy liczb臋 w danym formacie.

Przyk艂ady

Przyk艂ady u偶ycia metody toLocaleString

Podstawowy spos贸b u偶ycia, bez podanych argument贸w, zwr贸ci nam 艂a艅cuch znak贸w w domy艣lnej lokalizacji i z domy艣lnymi opcjami.

var liczba = 3500;

console.log(liczba.toLocaleString()); // Wy艣wietli "3 500", je艣li twoj膮 lokalizacj膮 jest 鈥瀙l-PL鈥

Sprawdzanie dost臋pno艣ci argument贸w lokalizacji i opcji

Nie wszystkie przegl膮darki obs艂uguj臋 argumenty lokalizacji i opcji. Aby to sprawdzi膰 w wersji j臋zyka ES5.1 i p贸藕niejszych mo偶emy u偶y膰 wyj膮tku RangeError, kt贸ry zostanie rzucony gdy niepoprawna nazwa lokalizacji zostanie u偶yta:

function toLocaleStringSupportsLocales() {
  var liczba = 0;
  try {
    liczba.toLocaleString('i');
  } catch (e) {
    return e.name === 'RangeError';
  }
  return false;
}

W wersjach przed ES5.1 nie by艂o obowi膮zku wyrzucania wyj膮tku Range Error je艣li metoda toLocaleString zosta艂a wywo艂ana z argumentami.

Sprawdzenie dzia艂aj膮ce na wszystkich wersjach j臋zyka przed 5.1 polega na u偶yciu funkcjonalno艣ci niezb臋dnych do dzia艂ania tych argument贸w bezpo艣rednio na Number.prototype.toLocaleString:

function toLocaleStringSupportsOptions() {
  return !!(typeof Intl == 'object' && Intl && typeof Intl.NumberFormat == 'function');
}

Sprawdzamy tutaj czy istnieje globalny obiekt Intl, czy nie jest nullem, a tak偶e czy posiada w艂a艣ciwo艣膰 NumberFormat, kt贸ra jest funkcj膮.

Przyk艂ady u偶ycia lokalizacji

Przyk艂ad ten pokazuje kilka r贸偶nych lokalizacji. Aby uzyska膰 foramt j臋zyka interfejsu u偶ytkownika upewnij si臋, 偶e podajesz t臋 lokalizacj臋 (i dla pewno艣ci kilka innych jako fallbacki) przy pomocy aargumentu localizacji:

var liczba = 123456.789;

// J臋zyk niemiecki oddziela cz臋艣ci dziesi臋tne przecinkiem, a tysi膮ce kropk膮
console.log(liczba.toLocaleString('de-DE'));
// 鈫 123.456,789

// W wi臋kszo艣ci kraj贸w arabskich u偶ywa cyfr Eastern Arabic
console.log(liczba.toLocaleString('ar-EG'));
// 鈫 佟佗伲伽佶佴佾侑侉侃

// Indyjski u偶ywa separator贸w tysi臋cy/lakh/crore
console.log(liczba.toLocaleString('en-IN'));
// 鈫 1,23,456.789

// Klucz rozszerze艅 鈥瀗u鈥 pyta o system numeryczny, np. Chi艅ski system dziesi臋tny
console.log(liczba.toLocaleString('zh-Hans-CN-u-nu-hanidec'));
// 鈫 涓浜屼笁,鍥涗簲鍏.涓冨叓涔

// je艣li masz zamiar u偶y膰 lokalizacji, kt贸ra mo偶e nie by膰 obs艂ugiwana
// jak np. Balinese, zawsze dodaj drugi lokalizacj臋, tutaj Indonezyjsk膮
console.log(liczba.toLocaleString(['ban', 'id']));
// 鈫 123.456,789

Przyk艂ady u偶ycia opcji

Rezultaty metodytoLocaleString  mog膮 by膰 dostosowywane przy pomocy argumentu opcje:

var liczba = 123456.789;

// format walutowy
console.log(liczba.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' }));
// 鈫 123.456,79 鈧

// Japo艅ski yen
console.log(liczba.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' }))
// 鈫 锟123,457

// ogranicz wy艣wietlanie do 3 miejsc znacz膮cych
console.log(liczba.toLocaleString('en-IN', { maximumSignificantDigits: 3 }));
// 鈫 1,23,000

// U偶yj domy艣lnego j臋zyka hosta z opcjami formatowania liczby
var num = 30000.65;
console.log(num.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}));
// 鈫 "30,000.65" w j臋zyku angielskim lub
// 鈫 "30.000,65" w j臋zyku niemieckiem lub
// 鈫 "30 000,65" w j臋zyku francuskim

Wydajno艣膰

Je艣li zamierzasz formatowa膰 wiele liczb, lepiej u偶y膰 obiektu NumberFormat i formatowa膰 przy pomocy metody NumberFormat.format (en-US).

Specyfikacje

Specification Status Comment
ECMAScript 3rd Edition (ECMA-262) Standard Pierwsza definicja. Zaimplementowane w JavaScript 1.5.
ECMAScript 5.1 (ECMA-262)
The definition of 'Number.prototype.toLocaleString' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Number.prototype.toLocaleString' in that specification.
Standard  
ECMAScript (ECMA-262)
The definition of 'Number.prototype.toLocaleString' in that specification.
Living Standard  
ECMAScript Internationalization API 1.0 (ECMA-402)
The definition of 'Number.prototype.toLocaleString' in that specification.
Standard  
ECMAScript Internationalization API 2.0 (ECMA-402)
The definition of 'Number.prototype.toLocaleString' in that specification.
Standard  
ECMAScript Internationalization API (ECMA-402)
The definition of 'Number.prototype.toLocaleString' in that specification.
Living Standard  

Kompatybilno艣膰

BCD tables only load in the browser

Zobacz tak偶e