chenxiaochun / blog

🖋️ChenXiaoChun's blog
179 stars 15 forks source link

Number.prototype.toLocaleString() 方法 #56

Open chenxiaochun opened 6 years ago

chenxiaochun commented 6 years ago

toLocaleString()方法会根据传入的语言参数,将数值转换成对应语言的本地格式字符串。先看几个示例:

function eArabic(x){
  return x.toLocaleString('ar-EG');
}

console.log(eArabic(123456.789));
// expected output: "١٢٣٬٤٥٦٫٧٨٩"

console.log(eArabic("123456.789"));
// expected output: "123456.789"

console.log(eArabic(NaN));
// expected output: "ليس رقم"

ar-EG表示阿拉伯语言。所以,第一次调用传入的数值被转换成了阿拉伯语言数字;第二次传入的是一个字符串,不做任何转换;第三次传入的NaN也被进行了转换,如果你不相信它是NaN,可以进行一下测试:

isNaN('يس رقم')
// true

使用语法

numObj.toLocaleString([locales [, options]])

locales参数

此参数是一个可选的 BCP 47 语言标签字符串或者字符串数组。它的取值格式一般为以下种:“arab”,“arabext”,“bali”,“beng”,“deva”,“fullwide”,“gujr”,“guru”,“hanidec”,“khmr”,“knda”,“laoo”,“latn”,“limb”,“mlym”,“mong”,“mymr”,“orya”,“tamldec”,“telu”,“thai”,“tibt“。

options参数

此参数是一个可选的参数对象,它主要有以下几个属性值:

let n = 1234

console.log(n.toLocaleString('en-IN',{
  style: 'currency',
  currency: 'USD',
  currencyDisplay: 'symbol'
}))

参考链接