Intl.NumberFormat
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since ÑенÑÑбÑÑ 2017 г..
ÐбÑÐµÐºÑ Intl.NumberFormat пÑедоÑÑавлÑÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑиÑел в ÑооÑвеÑÑÑвии Ñ ÑзÑковÑми пÑавилами.
ÐнÑеÑакÑивнÑй пÑимеÑ
const number = 123456.789;
console.log(
new Intl.NumberFormat("de-DE", { style: "currency", currency: "EUR" }).format(
number,
),
);
// Expected output: "123.456,79 â¬"
// The Japanese yen doesn't use a minor unit
console.log(
new Intl.NumberFormat("ja-JP", { style: "currency", currency: "JPY" }).format(
number,
),
);
// Expected output: "ï¿¥123,457"
// Limit to three significant digits
console.log(
new Intl.NumberFormat("en-IN", { maximumSignificantDigits: 3 }).format(
number,
),
);
// Expected output: "1,23,000"
Constructor
Intl.NumberFormat()-
СоздаÑÑ Ð½Ð¾Ð²Ñй обÑекÑ
NumberFormat.
СÑаÑиÑеÑкие меÑодÑ
Intl.NumberFormat.supportedLocalesOf()-
ÐозвÑаÑÐ°ÐµÑ Ð¼Ð°ÑÑив, ÑодеÑжаÑий локали, коÑоÑÑе поддеÑживаÑÑÑÑ Ð±ÐµÐ· Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи возвÑаÑа к локали по ÑмолÑаниÑ.
СвойÑÑва ÑкземплÑÑа
ÐÑи ÑвойÑÑва опÑÐµÐ´ÐµÐ»ÐµÐ½Ñ Ð² Intl.NumberFormat.prototype и еÑÑÑ Ñ Ð²ÑеÑ
ÑкземплÑÑов Intl.NumberFormat.
Intl.NumberFormat.prototype.constructor-
ФÑнкÑиÑ-конÑÑÑÑкÑоÑ, ÑоздаÑÑÐ°Ñ ÑкземплÑÑ Ð¾Ð±ÑекÑа. ÐÐ»Ñ ÑкземплÑÑов
Intl.NumberFormatнаÑалÑнÑм знаÑением ÑвлÑеÑÑÑ ÐºÐ¾Ð½ÑÑÑÑкÑоÑIntl.NumberFormat. Intl.NumberFormat.prototype[@@toStringTag]-
ÐаÑалÑнÑм знаÑением ÑвойÑÑва
@@toStringTagÑвлÑеÑÑÑ ÑÑÑока"Intl.NumberFormat". ÐÑо ÑвойÑÑво иÑполÑзÑеÑÑÑ Ð²Object.prototype.toString().
ÐеÑÐ¾Ð´Ñ ÑкземплÑÑа
Intl.NumberFormat.prototype.format()-
ФÑнкÑиÑ-геÑÑеÑ, коÑоÑÐ°Ñ ÑоÑмаÑиÑÑÐµÑ ÑиÑло в ÑооÑвеÑÑÑвии Ñ Ð»Ð¾ÐºÐ°Ð»ÑÑ Ð¸ наÑÑÑойками ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÑого обÑекÑа
Intl.NumberFormat. Intl.NumberFormat.prototype.formatRange()-
ФÑнкÑиÑ-геÑÑеÑ, коÑоÑÐ°Ñ ÑоÑмаÑиÑÑÐµÑ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ ÑиÑел в ÑооÑвеÑÑÑвии Ñ Ð»Ð¾ÐºÐ°Ð»ÑÑ Ð¸ наÑÑÑойками ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð±ÑекÑа
Intl.NumberFormat, меÑод коÑоÑого бÑл вÑзван. Intl.NumberFormat.prototype.formatRangeToParts()-
ÐозвÑаÑаеÑ
маÑÑивобÑекÑов, пÑедÑÑавлÑÑÑÐ¸Ñ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ ÑиÑловÑÑ ÑÑÑок по ÑаÑÑÑм, коÑоÑÑе можно иÑполÑзоваÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑелÑÑкого ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ñ ÑÑеÑом локали. Intl.NumberFormat.prototype.formatToParts()-
ÐозвÑаÑаеÑ
маÑÑивобÑекÑов, пÑедÑÑавлÑÑÑÐ¸Ñ ÑаÑÑи ÑиÑла, коÑоÑÑе могÑÑ Ð±ÑÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ñ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑелÑÑкого ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ñ ÑÑÑÑом локали. Intl.NumberFormat.prototype.resolvedOptions()-
ÐозвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²Ñй обÑÐµÐºÑ Ñо ÑвойÑÑвами, пÑедÑÑавлÑÑÑими Ð»Ð¾ÐºÐ°Ð»Ñ Ð¸ наÑÑÑойки ÑоÑмаÑиÑованиÑ, опÑеделÑннÑе во вÑÐµÐ¼Ñ Ð¸Ð½Ð¸ÑиализаÑии обÑекÑа.
ÐÑимеÑÑ
>ÐÑполÑзование NumberFormat
ÐÑи иÑполÑзовании без ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð»Ð¾ÐºÐ°Ð»Ð¸ возвÑаÑаеÑÑÑ ÑÑÑока, оÑÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð½Ð°Ñ Ð² ÑооÑвеÑÑÑвии Ñ Ð»Ð¾ÐºÐ°Ð»ÑÑ Ð¸ наÑÑÑойками по ÑмолÑаниÑ.
const number = 3500;
console.log(new Intl.NumberFormat().format(number));
// '3,500' в локали US English
ÐÑполÑзование паÑамеÑÑа locales
ÐÑÐ¾Ñ Ð¿ÑÐ¸Ð¼ÐµÑ Ð¿Ð¾ÐºÐ°Ð·ÑÐ²Ð°ÐµÑ Ð½ÐµÐºÐ¾ÑоÑÑе локализованнÑе ÑоÑмаÑÑ ÑиÑел. ÐÐ»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ ÑоÑмаÑа ÑзÑка, иÑполÑзÑемого в полÑзоваÑелÑÑком инÑеÑÑейÑе ваÑего пÑиложениÑ, ÑбедиÑеÑÑ, ÑÑо Ð²Ñ Ñказали ÑÑÐ¾Ñ ÑзÑк (и, возможно, неÑколÑко запаÑнÑÑ
ÑзÑков) иÑполÑзÑÑ Ð¿Ð°ÑамеÑÑ locales:
const number = 123456.789;
// Ð ÐеÑмании в каÑеÑÑве ÑазделиÑÐµÐ»Ñ Ñелой и дÑобной ÑаÑÑи иÑполÑзÑеÑÑÑ Ð·Ð°Ð¿ÑÑаÑ, а в каÑеÑÑве ÑазделиÑÐµÐ»Ñ ÑазÑÑдов - ÑоÑка
console.log(new Intl.NumberFormat("de-DE").format(number));
// 123.456,789
// РРоÑÑии в каÑеÑÑве ÑазделиÑÐµÐ»Ñ Ñелой и дÑобной ÑаÑÑи иÑполÑзÑеÑÑÑ Ð·Ð°Ð¿ÑÑаÑ, а в каÑеÑÑве ÑазделиÑÐµÐ»Ñ ÑазÑÑдов - пÑобел
console.log(new Intl.NumberFormat("ru-RU").format(number));
// 123 456,789
// РболÑÑинÑÑве аÑабоÑзÑÑнÑÑ
ÑÑÑан иÑполÑзÑÑÑ Ð½Ð°ÑÑоÑÑие аÑабÑкие ÑиÑÑÑ
console.log(new Intl.NumberFormat("ar-EG").format(number));
// ١٢٣٤٥٦٫٧٨٩
// Ð Ðндии иÑполÑзÑÑÑ ÑазделиÑели Ð´Ð»Ñ ÑÑÑÑÑ/лакÑ
/кÑоÑ
console.log(new Intl.NumberFormat("en-IN").format(number));
// 1,23,456.789
// ÐлÑÑ ÑаÑÑиÑÐµÐ½Ð¸Ñ nu запÑаÑÐ¸Ð²Ð°ÐµÑ ÑиÑÑÐµÐ¼Ñ Ð½ÑмеÑаÑии, напÑимеÑ, киÑайÑкÑÑ Ð´ÐµÑÑÑиÑнÑÑ
console.log(new Intl.NumberFormat("zh-Hans-CN-u-nu-hanidec").format(number));
// ä¸äºä¸,åäºå
.ä¸å
«ä¹
// ÐÑли запÑаÑиваемÑй ÑзÑк Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ поддеÑживаÑÑÑÑ, напÑимеÑ
// балийÑкий, оÑкаÑÑваемÑÑ Ð½Ð° запаÑной ÑзÑк, в данном ÑлÑÑае индонезийÑкий
console.log(new Intl.NumberFormat(["ban", "id"]).format(number));
// 123.456,789
ÐÑполÑзование паÑамеÑÑа options
РезÑлÑÑÐ°Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½Ð°ÑÑÑоен Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¿Ð°ÑамеÑÑа options:
const number = 123456.789;
// ÐапÑаÑиваем ÑоÑÐ¼Ð°Ñ Ð²Ð°Ð»ÑÑÑ
console.log(
new Intl.NumberFormat("de-DE", { style: "currency", currency: "EUR" }).format(
number,
),
);
// 123.456,79 â¬
console.log(
new Intl.NumberFormat("ru-RU", { style: "currency", currency: "RUB" }).format(
number,
),
);
// 123 456,79 ÑÑб.
// ЯпонÑÐºÐ°Ñ Ð¹ÐµÐ½Ð° не иÑполÑзÑÐµÑ Ð¼Ð»Ð°Ð´Ñие единиÑÑ
console.log(
new Intl.NumberFormat("ja-JP", { style: "currency", currency: "JPY" }).format(
number,
),
);
// ï¿¥123,457
// ÐгÑаниÑиваем до ÑÑÑÑ
знаÑаÑиÑ
ÑиÑÑ
console.log(
new Intl.NumberFormat("en-IN", { maximumSignificantDigits: 3 }).format(
number,
),
);
// 1,23,000
// ФоÑмаÑиÑование Ñ ÐµÐ´Ð¸Ð½Ð¸Ñами измеÑениÑ
console.log(
new Intl.NumberFormat("pt-PT", {
style: "unit",
unit: "kilometer-per-hour",
}).format(50),
);
// 50 km/h
console.log(
(16).toLocaleString("en-GB", {
style: "unit",
unit: "liter",
unitDisplay: "long",
}),
);
// 16 litres
ÐолнÑй ÑпиÑок наÑÑÑоек ÑмоÑÑиÑе на ÑÑÑаниÑе Intl.NumberFormat() constructor.
СпеÑиÑикаÑии
| Specification |
|---|
| ECMAScript® 2027 Internationalization API Specification> # numberformat-objects> |