Number.prototype.toLocaleString()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015å¹´7æ.
toLocaleString() 㯠Number å¤ã®ã¡ã½ããã§ããã®æ°å¤ã表ãè¨èªä¾åã®æååãè¿ãã¾ãã Intl.NumberFormat API ã«å¯¾å¿ãã¦ããå®è£
ã«ããã¦ã¯ããã®ã¡ã½ãã㯠Intl.NumberFormat ã«å§è²ããã¾ãã
toLocaleString ã¡ã½ãããå¼ã³åºãããæç¹ã§ã¯ãå¤§è¦æ¨¡ãªãã¼ã«ã©ã¤ãºæååãã¼ã¿ãã¼ã¹å
ã§æ¤ç´¢ãå®è¡ããå¿
è¦ãããã¾ããããã¯æ½å¨çã«éå¹çã§ããåã弿°ã§ã¡ã½ãããä½åº¦ãå¼ã³åºãããå ´åã¯ã Intl.NumberFormat ãªãã¸ã§ã¯ãã使ãããã® format() ã¡ã½ããã使ç¨ããã»ããããã§ããããããã¯ã NumberFormat ãªãã¸ã§ã¯ããæ¸¡ããã弿°ãè¨æ¶ãããã¼ã¿ãã¼ã¹ã®ä¸é¨ããã£ãã·ã¥ããå¯è½æ§ããããããä»å¾ã® format å¼ã³åºãã§ã¯ãã¼ã«ã©ã¤ãºæååã®æ¤ç´¢ãå¶ç´ãããã³ã³ããã¹ãå
ã§è¡ããã¨ãã§ããããã§ãã
試ãã¦ã¿ã¾ããã
function eArabic(x) {
return x.toLocaleString("ar-EG");
}
console.log(eArabic(123456.789));
// äºæ³ãããçµæ: "١٢٣٬٤٥٦٫٧٨٩"
console.log(eArabic("123456.789"));
// äºæ³ãããçµæ: "123456.789"
console.log(eArabic(NaN));
// äºæ³ãããçµæ: "ÙÙØ³ رÙÙ
"
æ§æ
toLocaleString()
toLocaleString(locales)
toLocaleString(locales, options)
弿°
locales ããã³ options 弿°ã§æ©è½ã®åä½ãã«ã¹ã¿ãã¤ãºãããã¨ãã§ããã¢ããªã±ã¼ã·ã§ã³ãæ¸å¼åã®ç¿æ
£ãç¨ããè¨èªãæå®ãããã¨ãã§ãã¾ãã
Intl.NumberFormat API ã«å¯¾å¿ãã¦ããå®è£
ã§ã¯ããããã®å¼æ°ã¯æ£ç¢ºã« Intl.NumberFormat() ã³ã³ã¹ãã©ã¯ã¿ã¼ã®å¼æ°ã«å¯¾å¿ãã¾ããIntl.NumberFormat ã«å¯¾å¿ãã¦ããªãå®è£
ã§ã¯ã弿°ãç¡è¦ããããã«æ±ãããã使ç¨ãããã±ã¼ã«ã¨è¿ãæååã®å½¢å¼ãå®å
¨ã«å®è£
ã«ä¾åããããã«ãªãã¾ãã
localesçç¥å¯-
BCP 47 è¨èªã¿ã°ãæã¤æååãã¾ãã¯ãã®ãããªæååã®é åã
Intl.NumberFormat()ã³ã³ã¹ãã©ã¯ã¿ã¼ã®locales弿°ã«å¯¾å¿ãã¾ããIntl.NumberFormatã®å¯¾å¿ããªãå®è£ ã§ã¯ããã®å¼æ°ã¯ç¡è¦ãããæ®éã¯ãã¹ãã®ãã±ã¼ã«ã使ç¨ããã¾ãã optionsçç¥å¯-
åºåããæ¸å¼ã調æ´ãããªãã¸ã§ã¯ãã§ãã
Intl.NumberFormat()ã³ã³ã¹ãã©ã¯ã¿ã¼ã®options弿°ã«å¯¾å¿ãã¾ããIntl.NumberFormatã®å¯¾å¿ããªãå®è£ ã§ã¯ããã®å¼æ°ã¯ç¡è¦ããã¾ãã
弿°ã¨ä½¿ãæ¹ã«ã¤ãã¦è©³ããã¯ãIntl.NumberFormat()
ã³ã³ã¹ãã©ã¯ã¿ã¼ãåç
§ãã¦ãã ããã
è¿å¤
æååã§ãæå®ãããæ°å¤ããè¨èªåºæã®è¡¨è¨è¦åã«å¾ã£ã¦è¡¨ãããã®ã§ãã
Intl.NumberFormat ã®ããå®è£
ã§ã¯ããã㯠new Intl.NumberFormat(locales, options).format(number) ã¨ç価ã§ãã
ã¡ã¢:
ã»ã¨ãã©ã®å ´åãtoLocaleString() ãè¿ãæ¸å¼ã¯ä¸è²«ãã¦ãã¾ãããã ããåããã±ã¼ã«å
ã§ãå®è£
ã«ãã£ã¦åºåçµæãç°ãªãå ´åãããã¾ããåºåã®å·®ç°ã¯ä»æ§ã§èªãããã¦ãã¦ãæå³çãªè¨è¨ã§ããæå¾
ããçµæã¨ç°ãªãå ´åãããã¾ããä¾ãã°ãæååã«éæ¹è¡ã¹ãã¼ã¹ã使ç¨ãããããåæ¹åå¶å¾¡æåã§å²ã¾ãããããå¯è½æ§ãããã¾ããtoLocaleString() ã®çµæããã¼ãã³ã¼ãã£ã³ã°ããã宿°ã¨æ¯è¼ããªãã§ãã ããã
ä¾
>toLocaleString() ã®ä½¿ç¨
ãã®ã¡ã½ããã locale ãæå®ããã«ä½¿ç¨ããå ´åãæ¢å®ã®ãã±ã¼ã«ã¨æ¢å®ã®ãªãã·ã§ã³ã§æ¸å¼åãããæååãè¿ãã¾ãã
const number = 3500;
console.log(number.toLocaleString()); // ã¢ã¡ãªã«è±èªã®ãã±ã¼ã«ã§ã¯ "3,500" ã表示
locales ããã³ options 弿°ã«å¯¾å¿ãã¦ãããã©ããã調ã¹ã
locales ããã³ options 弿°ã¯ããã¹ã¦ã®å®è£
ã§å¯¾å¿ãã¦ããã¨ã¯éãã¾ãããå½éå API ã®å¯¾å¿ã¯ãªãã·ã§ã³ã§ãããã·ã¹ãã ã«ãã£ã¦ã¯å¿
è¦ãªãã¼ã¿ãæã£ã¦ããªããã¨ãããããã§ããå½éå対å¿ã®ãªãå®è£
ã®å ´åãtoLocaleString() ã¯å¸¸ã«ã·ã¹ãã ã®ãã±ã¼ã«ã使ç¨ãã¾ãããããã¯æããã®ã¨ã¯ç°ãªãããããã¾ãããå®è£
ã locales ããã³ options 弿°ã«å¯¾å¿ãã¦ããå ´åã Intl API ã«ãå¿
ã対å¿ãã¦ãã¾ãã®ã§ãå¾è
ãåå¨ãããã©ããã§å¯¾å¿ç¶æ³ã調ã¹ããã¨ãã§ãã¾ãã
function toLocaleStringSupportsLocales() {
return (
typeof Intl === "object" &&
!!Intl &&
typeof Intl.NumberFormat === "function"
);
}
locales ã®ä½¿ç¨
ãã®ä¾ã§ã¯ãã¼ã«ã©ã¤ãºãããæ°å¤å¤æã®ããªã¨ã¼ã·ã§ã³ã®ããã¤ãã示ãã¾ããã¢ããªã±ã¼ã·ã§ã³ã®ã¦ã¼ã¶ã¼ã¤ã³ã¿ã¼ãã§ã¤ã¹ã§ä½¿ãããè¨èªã®å½¢å¼ãå¾ãããã«ãlocales 弿°ãç¨ãã¦ããè¨èªï¼ããã¦ããããããã¤ãã®ä»£æ¿è¨èªï¼ãæç¤ºãããã¨ã確ããã¦ãã ããã
const number = 123456.789;
// ãã¤ãèªã§ã¯å°æ°ç¹ã«ã«ã³ããç¨ããåã®æ¡åºåãã«ããªãªããç¨ãã
console.log(number.toLocaleString("de-DE"));
// 123.456,789
// å¤ãã®ã¢ã©ãã¢èªåã®å½ã®ã¢ã©ãã¢èªã§ã¯ãæ±ã¢ã©ãã¢æ°åãç¨ãã
console.log(number.toLocaleString("ar-EG"));
// ١٢٣٤٥٦٫٧٨٩
// ã¤ã³ãã§ã¯å/ã©ã¼ã¯ï¼åä¸ï¼/ã«ãã¼ã«ï¼åä¸ï¼ ã®åºåããç¨ãã
console.log(number.toLocaleString("en-IN"));
// 1,23,456.789
// nu æ¡å¼µãã¼ã§ã¯ãæ¼¢æ°åãªã©ã®è¨æ°æ³ããªã¯ã¨ã¹ããã
console.log(number.toLocaleString("zh-Hans-CN-u-nu-hanidec"));
// ä¸äºä¸,åäºå
.ä¸å
«ä¹
// ããªèªãªã©å¯¾å¿ãã¦ããªãå¯è½æ§ã®ããè¨èªããªã¯ã¨ã¹ãããå ´åã¯ã
// 代æ¿è¨èª (ãã®å ´åã¯ã¤ã³ããã·ã¢èª) ãå«ãã
console.log(number.toLocaleString(["ban", "id"]));
// 123.456,789
options ã®ä½¿ç¨
toLocaleString() ã«ãã£ã¦å¾ãããçµæã¯ options 弿°ã使ç¨ãã¦ã«ã¹ã¿ãã¤ãºã§ãã¾ãã
const number = 123456.789;
// é貨形å¼ããªã¯ã¨ã¹ã
console.log(
number.toLocaleString("de-DE", { style: "currency", currency: "EUR" }),
);
// 123.456,79 â¬
// æ¥æ¬åã«ã¯å¯åä½ããªã
console.log(
number.toLocaleString("ja-JP", { style: "currency", currency: "JPY" }),
);
// ï¿¥123,457
// æå¹æ¡æ°ã 3 æ¡ã«å¶é
console.log(number.toLocaleString("en-IN", { maximumSignificantDigits: 3 }));
// 1,23,000
// æ°å¤ã®æ¸å¼åã«ãã¹ãã®æ¢å®ã®è¨èªã¨ãªãã·ã§ã³ã使ç¨ãã
const num = 30000.65;
console.log(
num.toLocaleString(undefined, {
minimumFractionDigits: 2,
maximumFractionDigits: 2,
}),
);
// "30,000.65"ï¼æ¢å®ã®è¨èªãè±èªã®å ´åï¼
// "30.000,65"ï¼æ¢å®ã®è¨èªããã¤ãèªã®å ´åï¼
// "30 000,65"ï¼æ¢å®ã®è¨èªããã©ã³ã¹èªã®å ´åï¼
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-number.prototype.tolocalestring> |
| ECMAScript® 2027 Internationalization API Specification> # sup-number.prototype.tolocalestring> |