在前端开发中,数据格式化是一个常见的需求,特别是在涉及到货币、日期和数字等方面。ES11 中引入了新的 API Intl.NumberFormat
,可以帮助我们更好地格式化数字,使其在不同的语言环境下显示更加清晰和易于阅读。
什么是 Intl.NumberFormat
Intl.NumberFormat
是一个全局对象,可以帮助我们将数字格式化成不同的语言环境下的字符串表示形式。它是一个构造函数,可以使用 new
关键字创建一个实例化对象,然后使用对象的方法来格式化数字。
如何使用 Intl.NumberFormat
使用 Intl.NumberFormat
非常简单,只需要创建一个实例化对象,然后调用对象的方法即可。下面是一个简单的示例,演示了如何将数字格式化成货币的字符串表示形式:
const formatter = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', }) console.log(formatter.format(12345.67)) // $12,345.67
在上面的示例中,我们创建了一个实例化对象 formatter
,并且将其配置为将数字格式化成美元的货币表示形式。然后,我们调用 format
方法,将数字 12345.67
格式化成字符串 $12,345.67
。
Intl.NumberFormat 的参数
Intl.NumberFormat
构造函数接受两个参数。第一个参数是语言环境代码,用于指定要使用的语言环境。第二个参数是一个选项对象,用于指定要使用的格式化选项。
语言环境代码
语言环境代码用于指定要使用的语言环境。它是一个字符串,由语言和地区代码组成,用横杠 -
连接。例如,英语美国的语言环境代码为 en-US
,中文简体的语言环境代码为 zh-CN
。
选项对象
选项对象用于指定要使用的格式化选项。它是一个包含以下属性的对象:
style
:用于指定要使用的格式化样式,可以是decimal
、currency
或percent
。currency
:用于指定货币的 ISO 4217 代码,例如USD
、EUR
等。minimumIntegerDigits
:用于指定整数部分的最小位数。minimumFractionDigits
:用于指定小数部分的最小位数。maximumFractionDigits
:用于指定小数部分的最大位数。minimumSignificantDigits
:用于指定有效数字的最小位数。maximumSignificantDigits
:用于指定有效数字的最大位数。
示例
下面是一些示例,演示了如何使用 Intl.NumberFormat
来格式化数字。
格式化成货币
const formatter = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', }) console.log(formatter.format(12345.67)) // $12,345.67
格式化成百分比
const formatter = new Intl.NumberFormat('en-US', { style: 'percent', }) console.log(formatter.format(0.12345)) // 12.345%
指定最小位数和最大位数
const formatter = new Intl.NumberFormat('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 4, }) console.log(formatter.format(12345.6789)) // 12,345.6789
指定有效数字的最小位数和最大位数
const formatter = new Intl.NumberFormat('en-US', { minimumSignificantDigits: 3, maximumSignificantDigits: 6, }) console.log(formatter.format(123.456789)) // 123.457
总结
ES11 中的 Intl.NumberFormat
API 可以帮助我们更好地格式化数字,使其在不同的语言环境下显示更加清晰和易于阅读。我们可以使用该 API 将数字格式化成货币、百分比等常见的字符串表示形式,也可以指定最小位数、最大位数和有效数字的位数等格式化选项。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6510a00d95b1f8cacd91692c