【问题标题】:Thousands and Decimal Separators in Jquery pluginJquery插件中的千位和小数分隔符
【发布时间】:2012-09-20 14:49:19
【问题描述】:

我需要有关如何使用“。”使其在 jQuery Plugin 上工作的帮助。作为千位分隔符和“,”作为小数分隔符。我的 Jquery 知识不足以做到这一点,我试图查看其他示例以了解如何实现,但我没有从that 中找到它们的一部分,这不完全是我的情况,因为它基于点击但至少有千位和小数分隔符。

如果您可以编辑此Jquery Plugin 或给我发送一些示例以了解如何操作,我将非常高兴。

【问题讨论】:

  • 类似jsfiddle.net/Allan/z2qps/6? Math.ceil(x) 也会将一个数字向上舍入到最接近的整数。
  • 是的,但是我想让它在我用逗号和点数数字时让它工作,比如jsfiddle.net/z2qps/7,请参阅
    ​​ 中的案例

标签: jquery jquery-plugins plugins


【解决方案1】:

我们可以为您编写代码,但这不是本网站的用途。如果您需要我们这样做,请雇用我们:-)

现在我将为您指明正确的方向,以便您自己实现。

对于一些基本的 JavaScript 和 jQuery 学习,试试codecademy.com。它会教你一些基础知识,你将能够学到一些东西。在我看来,这是一个非常棒的网站,您可以自己选择主题,从基本 HTML 到高级 JavaScript。

要制作这个插件,你需要一些关于 Javascript 数学的知识,Mozilla 确实有一个非常好的网站来获取有关此权利的信息here。您将需要一些基本技能jQuery.animate()。一些RegExp 和javascript .replace()

有一个插件here 几乎可以满足您的需求。试试看它做了什么,但尝试自己编写代码,你会学到很多东西。

分隔符部分已经在您链接的另一个插件中。但是这个是使用 mooTools 而不是 jQuery 编写的。您需要了解这两个函数。

addSeparators: function(number)
  {
    var parts = number.toString().split(this.options.decimalSeparator);

    var dollars = parts[0];
    if (parts[1]) { var cents = parts[1]; }

    var rgx = /(\d+)(\d{3})/;

    while (rgx.test(dollars)) {
        dollars = dollars.replace(rgx, '$1' + this.options.thousandsSeparator + '$2');
    }

    var output = dollars;

    if (this.options.precision > 0) {
      if (cents) {
        output += this.options.decimalSeparator + cents;
      } else {
        output += '0' * this.options.precision;
      }
    }

    return output;
  },

  stripSeparators: function(string) {
    var result = string.replace(this.options.decimalSeparator, '.');
    var pattern = new RegExp(this.options.thousandsSeparator, 'g');
    var matches = result.match(pattern)

    if (matches) {
      matches.each(function() {
        result = string.replace(pattern, '');
      });
    }

    return result;
  }

希望对你有帮助,祝你好运!

【讨论】:

  • 感谢您的建议,我也在尝试您链接的插件,但我遇到了一些问题,它不起作用...
  • 什么问题,能解释一下吗?你有任何错误吗?
  • 那个插件不起作用,我将自己写下脚本,看这个例子jsbin.com/ehuzes/5/edit,我基本上需要在页面加载时自动获得相同的而不是onclick
最近更新 更多