在JavaScript中格式化整数的最快方法?

时间:2014-10-23 18:36:59

标签: javascript formatting

有一个随机数(不一定是正数或整数),比如-14383040.327843。我想把它变成"(14,383,040)"。所以拼写它:

  • 负数必须在括号中
  • 馏分部分应该剥离而不会变圆
  • 从右到左每N个小数位(默认为3个)必须有一个分隔符(默认为,
  • no leading zeros

获得此类字符串的最快(跨主流浏览器)方式是什么?

2 个答案:

答案 0 :(得分:1)

(Math.round(-14383040.327843)).toLocaleString();


/*  returned value: (String)
-14,383,040
*/

此值在IE8和IE10,Firefox 33,Opera 25和Chrome 38中返回。

用parens替换减号连字符 -

(Math.round(-14383040.327843)).toLocaleString().replace(/\-(.+)/,'($1)');

答案 1 :(得分:0)

试试这个。

x=-14383040.327843;
xf=Math.abs(x|0).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
xp=(x>0)?xf:"("+xf+")";

x是您的变量,xf是格式化的,xp是用于打印的。