JS метод Number.toLocaleString()
Загальний опис
Number.prototype.toLocaleString()
– це метод в JavaScript, який дає можливість перетворити число в рядок згідно з локальними налаштуваннями (форматами). Основна корисність цього методу полягає в тому, що він автоматично адаптує відображення числа до вимог певної локалі, що може бути вельми корисно при міжнародній локалізації веб-застосунків.
Давайте розглянемо, як користуватися цим методом:
- Базовий використання: Якщо ви хочете просто відформатувати число за замовчуванням для поточної локалі користувача, ви можете викликати метод без жодних аргументів:
const number = 1234567.89;
console.log(number.toLocaleString()); // наприклад, для української локалі результатом буде "1 234 567,89"
- Використання з конкретною локаллю: Ви можете вказати конкретну локаль як аргумент, щоб отримати відформатоване число згідно з цією локаллю:
console.log(number.toLocaleString('uk-UA')); // "1 234 567,89"
console.log(number.toLocaleString('en-US')); // "1,234,567.89"
- Додаткові опції форматування:
Метод
toLocaleString
також приймає другий аргумент у вигляді об'єкта опцій, який дозволяє детально налаштувати відображення числа:
console.log(number.toLocaleString('uk-UA', { style: 'currency', currency: 'UAH' })); // "1 234 567,89 ₴"
console.log(number.toLocaleString('en-US', { minimumFractionDigits: 0, maximumFractionDigits: 2 })); // "1,234,567.89"
Важливі особливості методу:
- Якщо ви не вказуєте локаль як аргумент, метод буде використовувати поточну локаль користувача.
- У випадку, якщо вказана локаль не підтримується середовищем виконання JavaScript, метод може використовувати локаль за замовчуванням.
- Опції, які передаються у другому аргументі, можуть розширюватися в залежності від конкретних потреб форматування.
Працюючи з числами у міжнародних веб-застосунках, використання методу toLocaleString
допоможе забезпечити коректне відображення чисел для різних користувачів у всьому світі.
Нотатка: | З методом
|
Нотатка: | Коли ви викликаєте метод
|
Порада: | Метод |
Синтаксис
toLocaleString()
toLocaleString(locales)
toLocaleString(locales, options)
Параметри
locales
Рядок з мовним тегом BCP 47 або масив таких рядків. Відповідає параметру
locales
конструктораIntl.NumberFormat()
.options
Об'єкт для налаштування формату виводу. Відповідає параметру
options
конструктораIntl.NumberFormat()
.
Return
string
Повертає рядок, який представляє число з урахуванням специфіки вибраної мови. У реалізаціях з
Intl.NumberFormat
, це еквівалентно виконаннюnew Intl.NumberFormat(locales, options).format(number)
. Таким чином, результат може бути адаптований під конкретний регіон або мову, що дозволяє коректно відображати числа згідно місцевих стандартів.
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
1 |
1 |
1 |
4 |
12 |
Переглядач | ||||
---|---|---|---|---|
4.4 |
18 |
4 |
1 |
Переглядач | ||
---|---|---|
0.10.0 |
1.0 |
Приклади
Цей приклад демонструє динамічне форматування числа на основі введеного числа та вибраної локалі. Користувач може взаємодіяти зі сторінкою, вводячи число та вибираючи локаль для його форматування.
У цьому прикладі ми конвертуємо число в локальний формат для деяких країн. Даний метод може бути корисним для відображення цін, зарплат чи інших числових даних у форматі, звичному для конкретного користувача.
let number = 1234567.89;
// Відображення числа у американському форматі
let usFormat = number.toLocaleString('en-US');
console.log(usFormat); // 1,234,567.89
// Відображення числа у європейському форматі
let euFormat = number.toLocaleString('de-DE');
console.log(euFormat); // 1.234.567,89
У цьому прикладі ми використовуємо toLocaleString()
для відображення числа у валютному форматі для різних країн. Метод надає можливість відображення значення валюти відповідно до локалі, що може бути корисним у міжнародних онлайн-магазинах.
let price = 1500.50;
// Відображення ціни у доларах для США
let usPrice = price.toLocaleString('en-US', { style: 'currency', currency: 'USD' });
console.log(usPrice); // $1,500.50
// Відображення ціни у євро для Німеччини
let dePrice = price.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' });
console.log(dePrice); // 1.500,50 €
// Відображення ціни у гривнях для України
let uaPrice = price.toLocaleString('uk-UA', { style: 'currency', currency: 'UAH' });
console.log(uaPrice); // 1 500,50 ₴