0

我正在使用JQuery 验证引擎库。我正在尝试通过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-)

我尝试了这个自定义规则:

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

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

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

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

我如何通过创建自己的自定义规则或其他方式来实现这一点。

提前致谢。

4

1 回答 1

2

用正则表达式做数学总是一件痛苦的事,你应该解析它并用代码检查不大于 12的条件。但是,对于这个简单的示例,可以使用

[0-9]|1[12]

然后,您对单个整数或范围的输入的组合将是

number(-number)?

对于一个输入,或两个逗号分隔的输入是

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"
};
于 2012-09-07T12:25:18.657 回答