我正在使用JQuery Validation Engine库。我正在尝试通过Regex
或custom method
创建自定义验证,以验证字段输入。
我建议将此验证名称设为custom integer validation containing integer range or some integers separated by comma(s) or combination of both
。
以下是标准:
89
12-18
或15-18
但不是19-3 (range should between min to max)
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)
。
如何通过创建自己的自定义规则或其他方法来实现此目的。
先谢谢。
答案 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"
};