【问题标题】:Javascript get decimal and thousands separator from NumberFormatJavascript 从 NumberFormat 获取小数和千位分隔符
【发布时间】:2015-06-18 11:04:23
【问题描述】:

我正在寻找一种从 NumberFormat 对象中获取小数和千位分隔符的方法。

var de = new Intl.NumberFormat('de-DE');

稍后我计划使用它们将格式化的字符串解析回 Javascript 的浮点数。我知道我可以创建样本编号,然后使用正则表达式对其进行扫描,但我觉得必须有一些更简单的方法来获取这些分隔符。

【问题讨论】:

标签: javascript number-formatting


【解决方案1】:

似乎您可以避免自己进行解析:

Intl.NumberFormat('de-CH').v8Parse(
    Intl.NumberFormat('de-CH').format(1000) // => 1'000
) // => 1000

但这听起来非常特定于 chrome :)

但如果我是你,我会尽量避免将本地化的数字以字符串形式表示为数字。

【讨论】:

  • 哇,它会非常好,但我们必须等待更广泛的浏览器支持。
  • 是的,最好不要将字符串解析为数字,但有时在客户端我们必须知道用户输入了什么数据。
【解决方案2】:

这里是返回格式化的js函数

function customNumberFormat( num){
    var parts = (''+ (num<0?-num:num)).split("."), s=parts[0], i=L= s.length, o='',c;
    while(i--){ o = (i==0?'':((L-i)%3?'':','))+s.charAt(i) +o }
    return (num<0?'-':'') + o + (parts[1] ? '.' + parts[1] : ''); 
}

【讨论】:

  • 你能解释一下这个函数到底是做什么的吗?
猜你喜欢
  • 2012-04-06
  • 1970-01-01
  • 2013-11-07
  • 1970-01-01
  • 2011-06-10
  • 2012-10-21
  • 1970-01-01
  • 1970-01-01
  • 2021-04-19
相关资源
最近更新 更多