Javascript 从 NumberFormat 获取小数和千位分隔符
Posted
技术标签:
【中文标题】Javascript 从 NumberFormat 获取小数和千位分隔符【英文标题】:Javascript get decimal and thousands separator from NumberFormat 【发布时间】:2015-06-18 11:04:23 【问题描述】:我正在寻找一种从 NumberFormat 对象中获取小数和千位分隔符的方法。
var de = new Intl.NumberFormat('de-DE');
稍后我计划使用它们将格式化的字符串解析回 javascript 的浮点数。我知道我可以创建样本编号,然后使用正则表达式对其进行扫描,但我觉得必须有一些更简单的方法来获取这些分隔符。
【问题讨论】:
您确定不是在寻找toLocaleString()
?
【参考方案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] : '');
【讨论】:
你能解释一下这个函数到底是做什么的吗?以上是关于Javascript 从 NumberFormat 获取小数和千位分隔符的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Excel JavaScript API 设置 NumberFormat