【问题标题】:adding regular expression jquery添加正则表达式jquery
【发布时间】:2011-10-13 09:54:00
【问题描述】:

您好,我正在使用 jquery 验证插件,我想向我的 price 字段添加验证,

唯一可用的是numbers 0-9commadot

1000
1000.00
1,000.00

应该可用,请帮忙。这是我的功能

    var x=$("#form").validate({                     

        rules: {
            price: {
                custom_number: true
            }
        },

        messages: {

        }

    }); 

$.validator.addMethod("custom_number", function(value, element) {
    return this.optional(element) || value === "NA" ||
        value.match(/^[0-9,\+-]+$/);
}, "Please enter a valid number");

我想在这里添加我的表情value.match(/^[0-9,\+-]+$/)

谢谢.......................

【问题讨论】:

    标签: php jquery codeigniter jquery-validate


    【解决方案1】:

    这是应该工作的正则表达式:

    ^[1-9]\d{0,2}(?:\d+|(?:,\d{3})*)(?:\.\d{2})?$
    

    Here 你可以针对各种字符串进行测试。

    【讨论】:

    • 第一组应该是\d ([0-9]) 来匹配像0.01 这样的数字,对吧?
    • @Mikulas:但它会匹配 0,000。就目前而言,当包含逗号时,它会错过任何 > 9,999.99 的内容。
    • @MikulasDite 但在这种情况下,它也会匹配 000,111,例如,不确定它是否有问题。
    • @bjornd 。 Mikulas Dite 是正确的,它不适用于像 0.01 这样的数字。请帮忙
    • @KanishkaPanamaldeniya 如果多个前导零不是问题,您可以使用 ^\d{0,2}(?:\d+|(?:,\d{3})*)(?: \.\d{2})?$.
    【解决方案2】:

    这个应该做的:

    value.match(/^[0-9,.]+$/);
    

    【讨论】:

    【解决方案3】:

    信不信由你,这个庞然大物似乎有效,而且它允许使用美元符号。

    ^\$?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$
    

    我从RegExLib.com借来它。如果这个正则表达式不适合你,也许其他的一个可以。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-02
      • 2010-09-21
      • 2011-12-15
      • 2012-11-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多