【问题标题】:parsing localized javascript number strings解析本地化的 javascript 数字字符串
【发布时间】:2016-12-20 22:53:58
【问题描述】:

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

这是因为如果他们在法国,他们可能更喜欢编辑数字“1.000.000,5”,而如果他们在澳大利亚,他们可能更喜欢编辑数字“1 000 000.5”或“ 1,000,000.5”。 (为了澄清问题的范围:我的代码不应该知道这个或那个语言环境的个别规则。是否有任何国家使用 ! 作为小数点?我不知道,我不想知道。)

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

如何解析本地化数字?

【问题讨论】:

标签: javascript internationalization number-formatting


【解决方案1】:

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

https://repl.it/Eu7I/2

【讨论】:

    【解决方案2】:

    我认为如果不预先设置格式并知道您要转换的内容是什么,这是不可能的。

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

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

    【讨论】:

      猜你喜欢
      • 2020-06-21
      • 1970-01-01
      • 1970-01-01
      • 2010-09-11
      • 1970-01-01
      • 2020-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多