【问题标题】:custom validation rule for integer range in jquery validation enginejquery验证引擎中整数范围的自定义验证规则
【发布时间】:2012-09-01 06:55:10
【问题描述】:

我正在使用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-)

我试过这个自定义规则:

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

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

我有一个总文档列表,假设12。我在表单中创建了一个文本框来接受什么文件,他喜欢在他的个人资料中添加。并且应该在上面应用上述标准。

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

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

提前致谢。

【问题讨论】:

  • 向我们展示您的自定义验证脚本的进展情况
  • 让我更清楚,what have you tried?
  • 你应该更新你的问题

标签: jquery regex validation jquery-validate


【解决方案1】:

用正则表达式做数学总是一件痛苦的事,你应该解析它并用代码检查不大于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"
};

【讨论】:

  • 它似乎正在工作。我也想把它作为必填字段,那么我应该在哪里更改。
  • 那个正则表达式不拒绝空字符串吗?我不知道您的插件,请查看其文档以了解如何要求输入。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-02
  • 2011-04-10
  • 1970-01-01
  • 1970-01-01
  • 2017-07-25
  • 2015-12-01
  • 2011-05-20
相关资源
最近更新 更多