toLocaleString用法详解

399 阅读2分钟

toLocaleString

前言:最近在做项目中遇到要显示千分位的需求,首先想到的是字符串截取,然后通过“,”拼接返回需要的数据;这显然不是一种明智的解决方案,于是搜索了一下,原来js提供的有一个api:toLocaleString,完美的解决了我的问题。

  • 官方定义

回这个数字在特定语言环境下的表示字符串

toLocaleString方法在多个对象中都实现了,比如:Number,Date,Array,Object,TypedArray,BigInt。

其实,对于每个对象原型中的toLocaleString方法,使用方式基本都一致:

toLocaleString(locales, options);
  1. locales 可选

带有 BCP 47 语言标记的字符串或字符串数组

  1. options 可选

一个可配置属性的对象

  • Number.prototype.toLocaleString

如果方法不传参数,返回使用默认的语言环境和默认选项格式化的字符串;

一个比较有意思的例子:比如想把1,2,3,4,5,6,7处理成对应的一/二…,大多数人会想到用一个对应关系1 ⇒ 一,那如果巧妙的使用toLocaleString中的locales参数,这件事就变的比较简单了:

let a = 1;
a.toLocaleString('zh-u-nu-hanidec'); // 一

下面看一下options中几个比较有意思的参数:

  1. style:要使用的格式样式,默认为 “decimal”
let num = 123;
num.toLocaleString('de-DE', {style: 'currency', currency: 'EUR'}); // '123,00 €'
  1. currency:用于货币格式
let num = 123;
num.toLocaleString('de-DE', {style: 'currency', currency: 'EUR'}); // '123,00 €'
num.toLocaleString('zh', {style: 'currency', currency: 'CNY'}); // '¥123.00'
  1. decimal:用于纯数字格式(默认的style值)
let num = 123;
num.toLocaleString('zh', {style: 'decimal'}); // '123'

注意:如果变量是一个字符串,调用toLocaleString会返回变量本身;

以上就是对于Number.prototype.toLocaleString方法的使用总结,虽然是一个小的知识点,但是可以节省大量的开发时间;学以致用,代码逼格又可以提升了!