toLocaleString
前言:最近在做项目中遇到要显示千分位的需求,首先想到的是字符串截取,然后通过“,”拼接返回需要的数据;这显然不是一种明智的解决方案,于是搜索了一下,原来js提供的有一个api:toLocaleString,完美的解决了我的问题。
- 官方定义
回这个数字在特定语言环境下的表示字符串
toLocaleString方法在多个对象中都实现了,比如:Number,Date,Array,Object,TypedArray,BigInt。
其实,对于每个对象原型中的toLocaleString方法,使用方式基本都一致:
toLocaleString(locales, options);
- locales 可选
带有 BCP 47 语言标记的字符串或字符串数组
- options 可选
一个可配置属性的对象
- Number.prototype.toLocaleString
如果方法不传参数,返回使用默认的语言环境和默认选项格式化的字符串;
一个比较有意思的例子:比如想把1,2,3,4,5,6,7处理成对应的一/二…,大多数人会想到用一个对应关系1 ⇒ 一,那如果巧妙的使用toLocaleString中的locales参数,这件事就变的比较简单了:
let a = 1;
a.toLocaleString('zh-u-nu-hanidec'); // 一
下面看一下options中几个比较有意思的参数:
- style:要使用的格式样式,默认为 “decimal”
let num = 123;
num.toLocaleString('de-DE', {style: 'currency', currency: 'EUR'}); // '123,00 €'
- currency:用于货币格式
let num = 123;
num.toLocaleString('de-DE', {style: 'currency', currency: 'EUR'}); // '123,00 €'
num.toLocaleString('zh', {style: 'currency', currency: 'CNY'}); // '¥123.00'
- decimal:用于纯数字格式(默认的style值)
let num = 123;
num.toLocaleString('zh', {style: 'decimal'}); // '123'
注意:如果变量是一个字符串,调用toLocaleString会返回变量本身;
以上就是对于Number.prototype.toLocaleString方法的使用总结,虽然是一个小的知识点,但是可以节省大量的开发时间;学以致用,代码逼格又可以提升了!