Min*_*eet 7 javascript parsing locale numbers
为了根据区域设置格式化数字,有一个标准的 JavaScript API:Intl.NumberFormat
但是对于反向操作,将字符串解析为数字我找不到任何支持语言环境的标准 API:
真的没有 JavaScript 标准 API 可以根据语言环境将字符串解析为数字吗?
如果没有:是否有任何市场已建立的开源库可以这样做?
NPM 包d2l-intl提供了一个区域敏感的解析器。
const { NumberFormat, NumberParse } = require('d2l-intl');
const formatter = new NumberFormat('es');
const parser = new NumberParse('es');
const number = 1234.5;
console.log(formatter.format(number)); // 1.234,5
console.log(parser.parse(formatter.format(1234.5))); // 1234.5
Run Code Online (Sandbox Code Playgroud)
不幸的是,该库仅支持少数开箱即用的语言环境。它还使用parseIntwhich 仅支持西方阿拉伯数字,因此对于使用不同数字系统的语言环境,您将不得不变得更加聪明。这是我由Mike Bostock找到的一种解决方案。我不想因此而受到赞扬,但我已经在这里复制了它以供后代使用(根据我自己的喜好进行了一些微调):
const { NumberFormat, NumberParse } = require('d2l-intl');
const formatter = new NumberFormat('es');
const parser = new NumberParse('es');
const number = 1234.5;
console.log(formatter.format(number)); // 1.234,5
console.log(parser.parse(formatter.format(1234.5))); // 1234.5
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2746 次 |
| 最近记录: |