首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在jQuery中向数字添加逗号

在jQuery中向数字添加逗号
EN

Stack Overflow用户
提问于 2010-10-07 23:39:47
回答 11查看 111.1K关注 0票数 85

我有这些数字

109998094456

如果需要的话,我想做的就是在正确的位置添加一个逗号,如下所示

10,9998,094456

这些都在p标记中,比如这个<p class="points">10999</p>等等。

这是可以做到的吗?

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

谢谢

杰米

更新

我花了点心思,并设法在这里弄明白了http://jsfiddle.net/W5jwY/1/

看一下新的Globalization插件,找到更好的实现方法

谢谢

杰米

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2012-10-18 13:39:12

适用于所有浏览器,这就是你所需要的。

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

这篇文章写得紧凑,而且切中要点,这要归功于regex。这是直接的JS,但您可以在jQuery中使用它,如下所示:

$('#elementID').html(commaSeparateNumber(1234567890));

$('#inputID').val(commaSeparateNumber(1234567890));

但是,如果您需要更干净、更灵活的东西。下面的代码将正确地修复小数,删除前导零,并且可以无限使用。感谢评论中的@baacke。

  function commaSeparateNumber(val){
   val = val.toString().replace(/,/g, ''); //remove existing commas first
   var valRZ = val.replace(/^0+/, ''); //remove leading zeros, optional
   var valSplit = valRZ.split('.'); //then separate decimals
    
   while (/(\d+)(\d{3})/.test(valSplit[0].toString())){
    valSplit[0] = valSplit[0].toString().replace(/(\d+)(\d{3})/, '$1'+','+'$2');
   }

   if(valSplit.length == 2){ //if there were decimals
    val = valSplit[0] + "." + valSplit[1]; //add decimals back
   }else{
    val = valSplit[0]; }

   return val;
  }

在你的jQuery中,像这样使用:

$('.your-element').each(function(){
  $(this).html(commaSeparateNumber($(this).html()));
});

这是jsFiddle

票数 142
EN

Stack Overflow用户

发布于 2013-09-08 02:16:19

Number(10000).toLocaleString('en');  // "10,000"
票数 135
EN

Stack Overflow用户

发布于 2013-11-13 17:58:20

Timothy Pirez的回答非常正确,但如果您需要在用户输入文本字段时立即用逗号替换数字,您可能需要使用Keyup函数。

      $('#textfield').live('keyup', function (event) {
        var value=$('#textfield').val();

      if(event.which >= 37 && event.which <= 40){
          event.preventDefault();
      }
      var newvalue=value.replace(/,/g, '');   
      var valuewithcomma=Number(newvalue).toLocaleString('en');   
      $('#textfield').val(valuewithcomma); 

      });

    <form><input type="text" id="textfield" ></form>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3883342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档