请选择 进入手机版 | 继续访问电脑版

JS - toLocaleString() 方法

[复制链接]
暖男先生 发表于 2021-1-2 19:00:32 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
一、欣赏器支持

所有主要欣赏器都支持toLocaleString() 方法
二、界说和用法


  • 可根据当地时间把 Date 对象转换为当地格字符串。
  • 可把一个 Number 对象转换为当地格字符串。
  • 可把一个 Array 对象转换为当地字符串。
注意,如果是 String 对象,那么 toLocaleString 的一切方法都对其不起作用,输出效果都是它自己。
  1. let d = new Date()console.log(d.toLocaleString()) // 2020/12/31 上午11:36:33let num=12345678;console.log(num.toLocaleString()); // 12,345,678let arr = ['a', 'b', 'c'];console.log(arr.toLocaleString()) // 'a', 'b', 'c'let str = '124';console.log(str.toLocaleString()) // '123'console.log(str.toLocaleString('zh-u-nu-hanidec')) // '123'
复制代码
三、参数

object.toLocaleString([locales [, options]])
locales 参数用于指定格式化对象时使用的语言情况,默认为当前情况的语言,可以不传。
  1. const date = new Date();date.toLocaleString('zh');  // "2020/12/31 上午11:51:01"date.toLocaleString('en'); // "12/31/2020, 11:51:01 AM"date.toLocaleString('ja'); // "2020/12/31 11:51:01"
复制代码
options 参数为输出样式的设置项,根据 object 范例差别会有差别选项,下文会仔细表明这个参数。但需要注意的是如果不传 locales 参数,那么 options 参数是不会生效的,实在上面的语法实在已经显现出这点。
Number.prototype.toLocaleString

options
可选。包罗一些或所有的下面属性的类:
style 体现格式化时使用的样式,默认是 decimal


  • decimal 用于纯数字格式;
  • percent 用于百分比格式;
  • currency 用于钱币格式;
  • unit 用于单元格式
currency 在钱币格式化中使用的钱币符号。没有默认值,如果 style 是 “currency”,必须提 currency 属性。


  • USD 美元
  • EUR 欧元
  • CNY 人民币
currencyDisplay 钱币符号的展示样式,默认值是 symbol。


  • symbol使用当地化的钱币符号比方 ¥(默认)
  • code使用国际标准组织钱币代码
  • name使用当地化的钱币名称
useGrouping 是否使用分组分隔符,如千位分隔符或千/万/亿分隔符。默认值是 true。
  1. const num = 123.56;num.toLocaleString('zh', { style: 'decimal' }); // "123.56"num.toLocaleString('zh', { style: 'percent' }); // "12,356%"num.toLocaleString('zh', { style: 'currency', currency: 'CNY' });  //"¥123.56"num.toLocaleString('zh', { style: 'currency', currency: 'cny', currencyDisplay: 'code' }); //"CNY 123.56"num.toLocaleString('zh', { style: 'currency', currency: 'cny', currencyDisplay: 'name' }); //"123.56人民币"     
复制代码
下面带来两组属性
第一组用于指定整数最少位数与小数的最少和最多位数,不敷则用0去凑。简单说,自动补0!
minimumIntegerDigits
使用的整数数字的最小数目。大概的值是从1到21,默认值是1。
minimumFractionDigits
使用的小数位数的最小数目,大概的值是从 0 到 20。
maximumFractionDigits
使用的小数位数的最大数目。大概的值是从 0 到 20。
  1. const num = 123.56;num.toLocaleString('zh', { minimumIntegerDigits: 5 }); // "00,123.56"num.toLocaleString('zh', { minimumIntegerDigits: 3 }); // "123.56"num.toLocaleString('zh', { minimumFractionDigits: 1, maximumFractionDigits: 3 }); // "123.56"num.toLocaleString('zh', { minimumFractionDigits: 1, maximumFractionDigits: 1 }); // "123.6"
复制代码
第二组用于控制有效数字位数,如果界说了第二组中的任意一个属性,则忽略第一组的设置。
minimumSignificantDigits
使用的有效数字的最小数目。大概的值是从1到21;默认值是1。
maximumSignificantDigits
使用的有效数字的最大数量。大概的值是从1到21;默认是 21。
  1. const num = 123.56;num.toLocaleString('zh', { minimumSignificantDigits: 1, maximumSignificantDigits: 3 }); // "124"num.toLocaleString('zh', { minimumSignificantDigits: 1, maximumSignificantDigits: 4 }); // "123.6"num.toLocaleString('zh', { minimumSignificantDigits: 1, maximumSignificantDigits: 2 }); // "120"
复制代码
注意,maximumFractionDigits 与 maximumSignificantDigits 均是四舍五入,使用时需要注意
Date.prototype.toLocaleString

只先容常用属性
hour12
体现是使用十二小时制照旧二十四小时制,默认值视 locales 而定。
详细的属性一共有 9 个,分别是 weekday、era、year、month、day、hour、minute、second 与 timeZoneName。
weekday 与 era,可以取值 narrow、short 或 long
timeZoneName 只可以取 short 或 long 两个值。
剩下的属性,均可以取值为 numeric 与 2-digit。
month 这个属性,语言对月份有差别的展现,撤除 numeric 与 2-digit 外,它额外多三个属性,分别是 narrow、short 与 long。
  1. const d = new Date();d.toLocaleString('zh', { hour12: true });    // "2020/12/31 下午2:10:09"d.toLocaleString('zh', { hour12: false });    // "2020/12/31 14:10:09"d.toLocaleString("zh", {month: "short"})   // "12月"d.toLocaleString("zh", {month: "long"})   // "十二月"d.toLocaleString("zh", {month: "narrow"})  // "12"d.toLocaleString("zh", {month: "numeric"})   // "12月"d.toLocaleString("zh", {month: "2-digit"})   // "12月"
复制代码
Array.prototype.toLocaleString()

数组中的元素将会使用各自的 toLocaleString 方法:
  1. const prices = ['¥7', 500, 8123, 12];prices.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' });// "¥7,¥500,¥8,123,¥12"const array1 = [1, 'a', new Date('21 Dec 1997 14:12:00 UTC')];const localeString = array1.toLocaleString('en', { timeZone: 'UTC' });//  "1,a,12/21/1997, 2:12:00 PM",
复制代码
四、快捷应用

1.把阿拉伯数字转成中文数字
  1. var num = 1num.toLocaleString('zh-u-nu-hanidec') // "一"
复制代码
2.转千分位
  1. var num = 12345678.123num.toLocaleString() // "12,345,678.123"
复制代码
3.转百分比
  1. var num = 0.45num.toLocaleString('zh',{style:'percent'}) // "45%"
复制代码
4.转钱币符号
  1. var num = 1234.2345num.toLocaleString('zh',{style:'currency' , currency:'CNY' }) // "¥1,234.23"
复制代码
5.转换时间显示
  1. var date = new Date()date.toLocaleString() // "2020/9/28 下午5:14:53"
复制代码
参考链接
MDN

来源:https://blog.csdn.net/kelly0721/article/details/112005664
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )