在jQuery中为数字添加逗号

Jam*_*lor 81 javascript formatting jquery numbers

我有这些数字

109998094456

我想要做的就是在正确的位置添加一个逗号,如果它需要它,所以它看起来像这样

10,9998,094456

这些都在像这样的ap标签内<p class="points">10999</p>等.

可以吗?

我在其他帖子http://jsfiddle.net/pdWTU/1/的帮助下尝试了它,但似乎无法让它工作

谢谢

杰米

UPDATE

稍微弄清楚并设法在这里弄清楚http://jsfiddle.net/W5jwY/1/

要查看新的Globalization插件,以获得更好的方法

谢谢

杰米

Tim*_*rez 137

适用于所有浏览器,这就是您所需要的.

  function commaSeparateNumber(val){
    while (/(\d+)(\d{3})/.test(val.toString())){
      val = val.toString().replace(/(\d+)(\d{3})/, '$1'+','+'$2');
    }
    return val;
  }
Run Code Online (Sandbox Code Playgroud)

写这个是紧凑的,并且到目前为止,感谢正则表达式.这是直接的JS,但你可以在你的jQuery中使用它,如下所示:

$('#elementID').html(commaSeparateNumber(1234567890));
Run Code Online (Sandbox Code Playgroud)

要么

$('#inputID').val(commaSeparateNumber(1234567890));
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢乌龟! (10认同)
  • 这个答案有两个问题:1.使用相同的值多次调用该函数将导致逗号位于错误的位置(例如,键盘事件).2.此函数不能正确处理小数,并在小数内添加逗号.请参阅此[JSFiddle](http://jsfiddle.net/baacke/XL5dn/)以获取修复这两者的修改版本. (7认同)
  • user1655655的答案更好 (4认同)

son*_*aft 126

Number(10000).toLocaleString('en');  // "10,000"
Run Code Online (Sandbox Code Playgroud)

  • 这是最简单的解决方案,对我来说非常适合.谢谢! (5认同)
  • 这很棒,适用于大多数桌面浏览器,但请注意它现在在移动浏览器中的支持有限... https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/的toLocaleString#Browser_Compatibility (5认同)
  • 谢谢你的提示,比编写自定义函数或包含插件要好得多.对我来说回答#1! (3认同)
  • 这在浏览器中不一致,在iPad上根本不起作用. (3认同)
  • 对于任何希望与Node.js一起使用它的人来说,除非你重新编译v8引擎以包含i18n,否则它将无法工作:http://stackoverflow.com/questions/23571043/ecmascript-internationalization-api-with-node/ 23571981 (2认同)
  • 试试这个`Number(012).toLocaleString('en')`:| (2认同)