jQuery和数字格式

时间:2013-12-18 11:07:16

标签: javascript jquery regex

似乎javascript和jQuery中的数字格式有点像泥潭。

我有一个包含一堆数字的表格。我希望在用户与页面上的jQuery元素交互时更改数字,但我还希望在用户与表交互时使用逗号和(+/-)符号格式化数字。据我所知,我无法对格式化状态的数字执行任何数学运算。此外,使用正则表达式可以动态格式化新数字(无需发送回服务器),但不方便。

有没有更好的方法来动态格式化和使用这些东西?我需要对格式化的数字进行数学运算,并从数学中生成新的格式化数字。

2 个答案:

答案 0 :(得分:1)

有很多方法可以做到这一点,仅举几例:

  1. 在Javascript中保留一个包含普通值和格式化值的对象数组。然后可以很容易地将其迭代到操纵/计算值和格式&产生输出。
  2. 在每个包含普通值的单元格上设置自定义数据元素,然后将格式化的值添加到单元格,类似<td data-actual-val="3400">3,400</td>
  3. 在每个单元格中都有一个隐藏的输入元素,用于保存普通值,以及一个跨度,用于保存格式化的值<td><input type="hidden" class="actualVal" value="3400"><span class="formattedVal">3,400</span></td>
  4. 如果没有通过添加您当前使用的HTML和Javascript / jQuery来详细说明您的问题,我们真的无法为您做更多的事情。

答案 1 :(得分:0)

var profits=2489.8237
profits.toFixed(3) //returns 2489.824 (round up)
profits.toFixed(2) //returns 2489.82
profits.toFixed(7) //returns 2489.8237000 (padding)

var anumber=123.45
anumber.toPrecision(6) //returns 123.450 (padding)
anumber.toPrecision(4) //returns 123.5 (round up)
anumber.toPrecision(2) //returns 1.2e+2 (you figure it out!)


var profits=2489.8237
if (profits.toFixed) //if browser supports toFixed() method
profits.toFixed(2)

credits

this may help