jquery验证引擎中整数范围的自定义验证规则

时间:2012-09-07 11:31:23

标签: jquery regex validation jquery-validate

我正在使用JQuery Validation Engine库。我正在尝试通过Regexcustom method创建自定义验证,以验证字段输入。

我建议将此验证名称设为custom integer validation containing integer range or some integers separated by comma(s) or combination of both

以下是标准:

  1. 可以输入任何整数。对于例如89
  2. 可以输入任何整数范围。对于例如12-1815-18但不是19-3 (range should between min to max)
  3. 可以输入以逗号(,)分隔的上述两个输入的任意组合,只逗号之间有或没有空格。对于例如1-6, 5, 8-13, 7但不是 -3-5 (not -3)3-7-, 10 (not 7-)
  4. 我尝试了这个自定义规则:

    "integerRangeComma": {                    
                 "regex": /^(([0-9]+)([\,]([0-9]+))?|([\,]([0-9]+))?)$/,
                 "alertText": "* Invalid floating decimal number"
              },
    

    我进行上述验证的目的是:

    我有一个总文件列表,我们假设12。我在表单中创建了一个文本框,以接受他喜欢在他的个人资料中添加的文件。上述标准应适用于此。

    我的下一个问题是,我还必须验证用户输入的数字不会超过12 (my presumption)

    如何通过创建自己的自定义规则或其他方法来实现此目的。

    先谢谢。

1 个答案:

答案 0 :(得分:2)

使用正则表达式进行数学运算总是很麻烦,您应该解析它并使用代码检查不大于12 条件。但是,这个简单的例子可以使用

[0-9]|1[12]

您输入单个整数或范围的组合将是

number(-number)?

和一个输入,或两个commaseparated的

input(\s*,\s*input)?

如果您想要两个以上,请使用*进行无限制,或使用{0,n}进行有限重复,而不是使用?

所以,你得到了

var integerRangeComma = {                    
     "regex": /^([0-9]|1[12])(-[0-9]|-1[12])?(\s*,\s*([0-9]|1[12])(-[0-9]|-1[12])?)?$/,
     "alertText": "a single page number until 12 or an interval in them, or two of those separated by a comma"
};