jQuery 验证插件 - 货币

jQuery validate plugin - currency

我正在尝试弄清楚如何将 jQuery 验证插件中的数字验证为合法的美国货币,最多两位小数零,没有逗号或美元符号(25000.00、1.00 等)

我尝试了这个要点 https://gist.github.com/jonkemp/9094324,但它似乎需要美元符号 ($)

        jQuery.validator.addMethod("currency", function (value, element) {
      return this.optional(element)
        || /^$(\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?$/.test(value);
    }, "Please specify a valid amount");

我也尝试过 Stack Overflow cliente validation using jQuery validate for currency fields 但验证码不会验证带有两个零的数字(例如 1.00)

jQuery.validator.addMethod("currency", function(value, element) {
    var isValidMoney = /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(value);
            return this.optional(element) || isValidMoney;
        },
        "Must be monetary (0 or 0.00)"
    );

这是显示这些问题的 jsfiddle http://jsfiddle.net/d4ywy0fu/

感谢任何帮助

I am attempting to figure out how to validate a number in the jQuery validate plugin as legitimate US currency, max two decimal place zeroes, without commas or dollar signs (25000.00, 1.00 , etc)

只需包含 the additional-methods.js file 并使用内置的 currency 方法如下...

currency: ["$", false] // dollar sign optional

currency: "$" // dollar sign required (default)

注意:逗号在所有情况下都是可选的。

演示:http://jsfiddle.net/d4ywy0fu/2/


注意Your jsFiddle also contains a DOM ready handler 在另一个 DOM 就绪处理程序中。虽然它没有害处,但完全是多余的。

$(function() {  // <- DOM Ready Handler

    $(document).ready(function() {  // <- DOM Ready Handler
        ....