javascript - 在jQuery中将逗号添加到数字

我有这些号码

109998094456

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

10,9998,094456

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

可以吗?

我在其他帖子 http://jsfiddle.net/pdWTU/1/ 的帮助下在这里尝试过,但似乎无法正常工作

谢谢

杰米

更新

搞砸了一点,并设法在这里解决了 http://jsfiddle.net/W5jwY/1/

打算看看新的全局化插件,以获得更好的方法

谢谢

杰米

最佳答案

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

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

感谢正则表达式,将其写得简洁明了。这是直接的 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 。

https://stackoverflow.com/questions/3883342/

相关文章:

java - 如何在 Java 中舍入整数除法并获得 int 结果?

string - 如何将 Int 转换为给定长度的字符串,前导零对齐?

c - 为什么 %d 代表整数?

java - netbeans 中的代码清理

mysql - 如何在 MySQL 数据库中存储电话号码?

objective-c - Objective-C 中的舍入数字

sql - 从 SQL Server 中的十进制中删除尾随零

r - 如何打印(到纸上)格式良好的数据框

c# - 在 C# 中的字符串中找到 {0} 是什么意思?

python - 轻松漂亮地打印花车?