【问题标题】:Adding a comma separator in Javascript output在 Javascript 输出中添加逗号分隔符
【发布时间】:2014-06-20 15:58:31
【问题描述】:

请查看小提琴here

在 JS 中,我有一些数字的输出。此数字当前没有逗号分隔符。

我想在千位中添加一个逗号。

这是我的输出 sn-p -

<input type="text" disabled="disabled" class="savings numbers" id="moneySaved">

这是与此相关的 JS -

$("#moneySaved").val("$" +(resultNonNursing*402) + ( " in tuition costs")); //# of credits * cost per credit ($402)

我正在尝试使用 jQuery 数字格式化程序。我在标题中有这个 -

$(document).ready(function() {
            $(".numbers").each(function() {
                $(this).format({format:"#,###", locale:"us"});
            });
        });

我已将 numbers 类添加到 html 输出 -

<input type="text" disabled="disabled" class="savings numbers" id="moneySaved">

...但它不起作用。

你能在这里提供一些方向吗?

【问题讨论】:

  • 什么意思,它不起作用?你能解释一下你得到的结果吗?我和许多其他 SO 用户看不到你的小提琴,因为它在工作中受到限制。
  • 好吧,我没有得到逗号分隔符。输出是1234,我正在尝试完成1,234,或123,456,789,和123
  • 是订购问题吗?在设置值之前,您将格式应用于所有数字。顺便说一下,您不需要 .each,您可以使用 $('.numbers').format(...)

标签: javascript jquery


【解决方案1】:
Number.prototype.format = function(){
   return this.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,");
};

如果你不喜欢这个

anumber.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");

【讨论】:

  • 我想这是他使用这种格式函数调用的唯一情况,所以这正是他想要的。
  • 您的第二个解决方案要好得多
  • 您可以添加 Number.prototype 和不带任何参数的调用格式(又名 number.format();),也可以替换 $(this).format({format:"#,## #", locale:"us"}); with $(this).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
  • 这是更新后的Fiddle。它不工作。我已经按照你的建议添加了。想法?
  • 您的函数已准备好文档并且不会多次触发,您应该将该函数连接到一个有意义的事件,例如文本框的 onkeyup 或 onchange。
猜你喜欢
  • 2012-11-17
  • 2020-07-01
  • 2023-02-01
  • 2013-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-04
  • 2011-03-06
相关资源
最近更新 更多