Javascript:更简单的数字格式化方式?

我正在尝试在页面上格式化各种数字。 这些数字代表价格,价格变化或百分比。 我知道Javascript具有限制小数位数的function,但是是否支持其他类型的格式化,例如用逗号分组数字,控制是否显示+/-等等? 这是我到目前为止所拥有的:

var FORMATTER = { price : function(value) { return '$' + value.toFixed(2); }, pricePer : function(value) { return (value * 100).toFixed(2) + '%'; }, priceChg : function(value) { return (value >= 0 ? '+' : '-') + '$' + Math.abs(value).toFixed(2); } }; 

它运行正常,但是它想在’price’格式化程序中添加逗号,你可以看到’priceChg’格式化程序中有一个hack,我试图在’$’前面移动+/-符号标志。

基本上,我希望有一些库(jQuery可以)模拟Java的DecimalFormat类。

有NUMBERFORMATTER jQuery插件,详情如下:

https://code.google.com/p/jquery-numberformatter/

从以上链接:

这个插件是一个NumberFormatter插件。 任何使用Java或PHP等服务器端代码以及使用国际化的人都很熟悉数字格式。

编辑:用更直接的链接替换链接。

不,没有对数字格式的内置支持,但谷歌搜索将调出大量的代码片段,将为您执行此操作。

编辑:我错过了你post的最后一句话。 尝试使用http://code.google.com/p/jquery-utils/wiki/StringFormat获取jQuery解决方案。

刚刚完成了一个用于格式化数字Numeral.js的js库。 它处理小数,美元,百分比甚至时间格式。

还可以尝试dojo.number ,它具有内置的本地化支持。 它与Java的NumberFormat / DecimalFormat更接近

如果有人感兴趣,这是YUI版本:

http://developer.yahoo.com/yui/docs/YAHOO.util.Number.html

 var str = YAHOO.util.Number.format(12345, { thousandsSeparator: ',' } );