toLocaleString()
返回一个字符串表示数组中的元素。数组中的元素将使用各自的 toLocaleString
方法转成字符串,这些字符串将使用一个特定语言环境的字符串(例如一个逗号 ",")隔开。
arr.toLocaleString([locales[,options]]);
locales
可选带有BCP 47语言标记的字符串或字符串数组,关于
locales
参数的形式与解释,请看Intl页面。
options
可选一个可配置属性的对象,对于数字 Number.prototype.toLocaleString(),对于日期
Date.prototype.toLocaleString()
.包含一些或所有的下面属性的类:
“decimal”
用于纯数字格式;“currency”
用于货币格式;“percent”
用于百分比格式;“unit”
用于单位格式
一,用在数组转字符串时,tolocalestring()和tostring()并无分别
let arr = [1,2,3,4,5,6,7,8,9,0];
console.log(arr.toString());
console.log(arr.toLocaleString());
//1,2,3,4,5,6,7,8,9,0
//1,2,3,4,5,6,7,8,9,0
二,在数字转字符串时的应用
1,千分位
let num = 123456789;
console.log(num.toString());
console.log(num.toLocaleString());
//123456789
//123,456,789
2,货币
let num = 123456789
num.toLocaleString('zh',{style:'currency'}); // 报错
值为 currency 时必须同时指定 options 中的 currency 属性,否则会报错
currency 指定对应的货币,
比如USD
、EUR
与CNY
(不区分大小写)
currencyDisplay
货币符号的展示样式,默认值是symbol
,即对应的符号,如CNY
是 ¥ ,该属性也可以设置为code
与name
let num = 123456789;
console.log(num.toLocaleString('zh',{style:'currency' , currency:'CNY' }));
console.log(num.toLocaleString('zh', { style: 'currency', currency: 'cny', currencyDisplay: 'code' }));
console.log(num.toLocaleString('zh', { style: 'currency', currency: 'cny', currencyDisplay: 'name' }));
//¥123,456,789.00
//CNY 123,456,789.00
//123,456,789.00人民币
3,控制有效数字的位数
let num = 123456.789;
console.log(num.toLocaleString('zh', { minimumSignificantDigits: 11, useGrouping: false }));
console.log(num.toLocaleString('zh', { maximumSignificantDigits: 4, useGrouping: false }));
//123456.78900
//123500
4,把阿拉伯数字转成中文数字
let num = 1;
let num2 = 12;
console.log(num.toLocaleString('zh-u-nu-hanidec'));
console.log(num2.toLocaleString('zh-u-nu-hanidec'));
//一
//一二
5,转百分百
let num = 0.45;
console.log(num.toLocaleString('zh',{style:'percent'}));
//45%
三,在日期上的应用
1,hour12
表示的是使用十二小时制还是使用二十四小时制,默认值是十二小时制
let date = new Date();
console.log(date.toLocaleString('zh', { hour12: true }));
console.log(date.toLocaleString('zh', { hour12: false }));
//2021/8/1下午9:55:00
//2021/8/121:55:00
2,weekday
与 era
(即‘公元’)
let date = new Date();
console.log(date.toLocaleString('en', { weekday: 'narrow', era: 'narrow' }));
console.log(date.toLocaleString('en', { weekday: 'short', era: 'short' }));
console.log(date.toLocaleString('en', { weekday: 'long', era: 'long' }));
//A S
//AD Sun
//Anno Domini Sunday
3,timeZoneName
let date = new Date();
console.log(date.toLocaleString('zh', { timeZoneName: 'short' }));
console.log(date.toLocaleString('zh', { timeZoneName: 'long' }));
//2021/8/1GMT+8 下午10:01:12
//2021/8/1GMT+08:00 下午10:01:12
4,numeric
与 2-digit
let date = new Date();
console.log(date.toLocaleString('zh', { year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', }));
console.log(date.toLocaleString('zh', { year: '2-digit', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit' }));
console.log(date.toLocaleString('zh', { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit' }));
//2021/8/1下午10:05:55
//21/08/01下午10:05:55
//2021/08/01下午10:05:55
5,month除了numeric
与 2-digit
外还有narrow
、short
与 long
let date = new Date();
console.log(date.toLocaleString('en', { month: 'narrow' }));
console.log(date.toLocaleString('en', { month: 'short' }));
console.log(date.toLocaleString('en', { month: 'long' }));
//A
//Aug
//August