To tłumaczenie jest niekompletne. Pomóż przetłumaczyć ten artykuł z języka angielskiego.

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)

locales

Optional. A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the Intl page. The following Unicode extension key is allowed:

nu
The numbering system to be used. Possible values include: "arab", "arabext", "bali", "beng", "deva", "fullwide", "gujr", "guru", "hanidec", "khmr", "knda", "laoo", "latn", "limb", "mlym", "mong", "mymr", "orya", "tamldec", "telu", "thai", "tibt".
options

Optional. An object with some or all of the following properties:

localeMatcher
The locale matching algorithm to use. Possible values are "lookup" and "best fit"; the default is "best fit". For information about this option, see the Intl page.
style
The formatting style to use. Possible values are "decimal" for plain number formatting, "currency" for currency formatting, and "percent" for percent formatting; the default is "decimal".
currency
The currency to use in currency formatting. Possible values are the ISO 4217 currency codes, such as "USD" for the US dollar, "EUR" for the euro, or "CNY" for the Chinese RMB — see the Current currency & funds code list. There is no default value; if the style is "currency", the currency property must be provided.
currencyDisplay
How to display the currency in currency formatting. Possible values are "symbol" to use a localized currency symbol such as €, "code" to use the ISO currency code, "name" to use a localized currency name such as "dollar"; the default is "symbol".
useGrouping
Whether to use grouping separators, such as thousands separators or thousand/lakh/crore separators. Possible values are true and false; the default is true.

The following properties fall into two groups: minimumIntegerDigits, minimumFractionDigits, and maximumFractionDigits in one group, minimumSignificantDigits and maximumSignificantDigits in the other. If at least one property from the second group is defined, then the first group is ignored.

minimumIntegerDigits
The minimum number of integer digits to use. Possible values are from 1 to 21; the default is 1.
minimumFractionDigits
The minimum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number and percent formatting is 0; the default for currency formatting is the number of minor unit digits provided by the ISO 4217 currency code list (2 if the list doesn't provide that information).
maximumFractionDigits
The maximum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number formatting is the larger of minimumFractionDigits and 3; the default for currency formatting is the larger of minimumFractionDigits and the number of minor unit digits provided by the ISO 4217 currency code list (2 if the list doesn't provide that information); the default for percent formatting is the larger of minimumFractionDigits and 0.
minimumSignificantDigits
The minimum number of significant digits to use. Possible values are from 1 to 21; the default is 1.
maximumSignificantDigits
The maximum number of significant digits to use. Possible values are from 1 to 21; the default is minimumSignificantDigits.

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 „pl-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(number.toLocaleString('de-DE'));
// → 123.456,789

// W większości krajów arabskich używa cyfr Eastern Arabic
console.log(number.toLocaleString('ar-EG'));
// → ١٢٣٤٥٦٫٧٨٩

// Indyjski używa separatorów tysięcy/lakh/crore
console.log(number.toLocaleString('en-IN'));
// → 1,23,456.789

// Klucz rozszerzeń „nu” pyta o system numeryczny, np. Chiński system dziesiętny
console.log(number.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(number.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(number.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' }));
// → 123.456,79 €

// Japoński yen
console.log(number.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' }))
// → ¥123,457

// ogranicz wyświetlanie do 3 miejsc znaczących
console.log(number.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.

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 Latest Draft (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 4.0 (ECMA-402)
The definition of 'Number.prototype.toLocaleString' in that specification.
Draft  

Kompatybilność

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support Yes Yes Yes Yes Yes Yes
locales24 Yes29111510
options24 Yes29111510
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Basic support Yes Yes Yes Yes Yes Yes Yes
locales No26 ? No No No10
options No26 ? No No No10

Zobacz także

Autorzy i etykiety dokumentu

 Autorzy tej strony: eLGi
 Ostatnia aktualizacja: eLGi,