解析本地化的javascript数字字符串

时间:2016-12-20 22:53:58

标签: javascript internationalization number-formatting

在Javascript中,我想以他们理解的格式向用户显示一个数字,以便他们可以编辑它。因此,系统需要解析一个国际号码。

这是因为如果他们在法国,他们可能更愿意编辑数字" 1.000.000,5"而如果他们在澳大利亚,他们可能更喜欢编辑数字" 1 000 000.5"或" 1,000,000.5"。 (为了澄清问题的范围:我的代码不应该知道这个或那个地区的个别规则。有没有国家使用!作为小数点?我不知道,我不知道#39;我想知道。)

现代Javascript提供了Intl.NumberFormat API,但它似乎只处理生成数字,而不是解析它们。

如何解析本地化的号码?

2 个答案:

答案 0 :(得分:0)

如果没有预先设定格式并知道你要转换成的内容,我认为这是不可能的。

例如,一个函数如何区分美国和法国的9,521?在美国,这超过九千,在法国它是九点半(和一点点)。

我建议您保留一份正则表达式列表,列出您将要显示的不同格式(并允许输入),并在阅读时使用相应的格式解析数字。

答案 1 :(得分:0)

规则必须在某个地方,并且合理的地方在您的程序中,或者您可以使用外部库(如果存在)。一般回答你的问题。一个数字被分成三个一组代表数千个,尽管在一些国家它们分成其他组;例如日本他们将人数分成几组。这是一个用给定间距系统将数字分成三组的脚本。

https://repl.it/Eu7I/2