【问题标题】:jquery number format to compact number style k thousand m million etcjquery 数字格式到紧凑的数字样式 k 千 m 百万等
【发布时间】:2018-08-29 10:12:30
【问题描述】:

使用 span 类格式化网页上所有数字的最佳方法是什么?使用 jquery?

<span class="number">100065</span>
<span class="number">9896</span>
<span class="number">3946</span>
<span class="number">9606</span>

结果 100k 9.8k 3.9k 9.6k

【问题讨论】:

标签: javascript jquery formatting numbers


【解决方案1】:

这有点重复,但这是适合您特殊情况的正确解决方案:

String.prototype.endsWith = function(suf) {
    return (this.indexOf(suf, this.length - suf.length) !== -1) ? this.slice(0, -2) : this;
};
function kF(num) { 
  return num > 999 ? 
    (num/1000).toString().slice(0, - 2).endsWith('.0') + 'k' : 
    num 
}
jQuery('span.number').text(function(i, oldText) { return kF(oldText); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="number">100065</span>
<span class="number">9896</span>
<span class="number">3946</span>
<span class="number">9606</span>
<p>Some more...</p>
<span class="number">100065568</span>
<span class="number">20054065568</span>

最新版本现在还修复了 100.0k 的问题。

【讨论】:

  • str.replace(".0", "") 这样会更好更快,但不检查它是否在右侧。检查这是否也是适合您的解决方案。
猜你喜欢
  • 1970-01-01
  • 2021-11-23
  • 2023-04-05
  • 1970-01-01
  • 2021-12-14
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多