格式数字十亿,千百

Format number by billions thousand hundreds

本文关键字:十亿 千百 数字 格式      更新时间:2023-09-26

如何设置数字的格式

12345678

格式
<span>12</span>
<span>345</span>
<span>678</span>
与Javascript

?

点击运行代码片段…查看结果

function numberToHtml(n) {
  function createSpan(n) {
    var span = document.createElement('span');
    span.textContent = n;
    return span;
  }
  function iter(n, container) {
    if (n === '') return container;
    container.insertBefore(createSpan(n.slice(-3)), container.firstChild);
    return iter(n.slice(0,-3), container);
  }
  return iter(String(n), document.createDocumentFragment());
}
document.body.appendChild(numberToHtml(12345678));
span {
  border: 1px solid red;
  padding: 3px;
  margin: 3px;
}

您可以像这样在每000处添加逗号:

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

然后像这样调用这个函数

var orig_number = 12345678;
var formatted_number = commaSeparateNumber(orig_number);

或者你可以这样做:

$(document).ready(function(){
  $('input.number').keyup(function(event) {
  // format number
  $(this).val(function(index, value) {
  return value
  .replace(/'D/g, '')
  .replace(/'B(?=('d{3})+(?!'d))/g, ",")
  ;
  });
  });
  });

一系列的除法/模数应该能让你得到碎片。

例如:

var x = 12345678;
var hund = parseInt(x / 1      ) % 1000; // 678
var thou = parseInt(x / 1000   ) % 1000; // 345
var mill = parseInt(x / 1000000) % 1000; // 12

可以泛化并循环检查结果何时为0