Intl.NumberFormat 的兼容性处理

近期需实现一个金额输入框的功能,采用了vue-currency-input组件,测试发现IE11+,Chrome,微信开发者工具都能正常使用,只有手机端的微信浏览器不支持。

查阅源码发现是组件内使用 Intl.NumberFormat 检测金额的格式,而手机端的微信浏览器并没有完整的实现该功能。

Intl 对象是 ECMAScript 国际化 API 的一个命名空间,它提供了精确的字符串对比、数字格式化,和日期时间格式化。

Intl.NumberFormat可以根据不同语言环境对数值字符串进行不同的呈现处理。

兼容性处理

采用FormatJS对ECMA-402 Intl API的polyfill。

一、安装

yarn add @formatjs/intl-pluralrules
yarn add @formatjs/intl-numberformat

二、引入

import '@formatjs/intl-pluralrules/polyfill'
import '@formatjs/intl-pluralrules/locale-data/zh'
import '@formatjs/intl-numberformat/polyfill'
import '@formatjs/intl-numberformat/locale-data/zh'
posted @ 2020-10-19 16:23  huliang56  阅读(800)  评论(0编辑  收藏  举报