js基础 - toLocaleString

445 阅读1分钟

toLocaleString() 方法返回在特定语言环境下的表示字符串

Number.prototype.toLocaleString

语法

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

参数

  locales - 可选 缩写语言代码查询
  options - 可选 包含一些或所有的下面属性的类 详情

可实现的需求

  • 数字格式化为千分位展示
var number = 123456.789;

console.log(number.toLocaleString());
// 123,456.789

// 德国使用逗号作为小数分隔符,分位周期为千位
console.log(number.toLocaleString('de-DE'));
// 123.456,789

// 印度使用千位/拉克(十万)/克若尔(千万)分隔
console.log(number.toLocaleString('en-IN'));
// 1,23,456.789

// nu 扩展字段要求编号系统,e.g. 中文十进制
console.log(number.toLocaleString('zh-Hans-CN-u-nu-hanidec'));
// → 一二三,四五六.七八九
  • 货币格式化
var number = 123456.789;

// 要求货币格式
console.log(number.toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' }));
// ¥123,456.79

// 日元不使用小数位
console.log(number.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' }))
// ¥123,457

// 限制两位有效数字
console.log(number.toLocaleString('en-IN', { maximumSignificantDigits: 2 }));
// 1,23,00

Date.prototype.toLocaleString()

语法

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

参数

  locales - 可选 缩写语言代码查询
  options - 可选 包含一些或所有的下面属性的类 详情

可实现的需求

  • 格式化时间
var date = new Date(2022, 1, 20, 15, 20, 20);

// 使用24小时制
console.log(date.toLocaleString("zh-CN", {hour12: false}));
// '2022/2/20 15:20:20'

// 
console.log(date.toLocaleString('en-US'));
// '2/20/2022, 3:20:20 PM'