概念
输入
输入就是待校验的对象,将会被应用到后面的规则中进行判断,也是val函数的第一个参数。
Rebb Val 支持以下数据类型:
输入对象的类型
布尔型 Boolean
数字型 Number
包括整形,长整型,浮点型,高精度浮点型,在Java实现中,内部都会转换成BigDecimal类型来处理。
日期型 Date
在Java中,输入可以是一个java.uitl.Date类型
RebbVal v = new RebbVal();
v.val(v.date("2010-05-01"),"between 2010-01-01 and 2020-01-01"); // true
//自定义日期格式
v.val(v.date("2020/12/31","yyyy/MM/dd"), "[2020-01-01, 2021-12-31]"); //true字符串型 String
规则
规则就是一个字符串,但是必须符合RebbVal的语法,是val函数的第二个参数
支持的语法如下:
比较: =, !=, >,<,>=,<=
范围:between .. and ..
区间:interval,如[a..b],(a..b),[a..b),(a..b]
在数组内:in (array)
包含:contains
不为空:not empty
最大长度:max length
是否满足:is (true, false, phone, email, ipv4,url, ect.)
自定义判断:is (custom function)
匹配正则:match (regex)
年龄大于/小于:older than/younger than
以...开始/结束:starts with/ends with
可以使用not操作来反转规则
可以用and 和or来组合规则
规则中的数据类型
数组 array
布尔 boolean
数字 number
日期 date
正则表达式 regex
字符串 string
结果
val 函数的结果是一个布尔型。
如果结果是true,说明输入对象通过了所有的规则校验,否则可以通过调用 getErrors 方法来获取所有校验失败的详细信息。
错误
如果val函数返回false,或者hasError函数返回true,那就代表有错误,验证失败。
可以调用getErrors函数来获取具体的错误信息,返回值是一个字符串数组(在Java实现中,是一个ArrayList<String>)。
自定义验证器
先来看一下 com.rebb.valid.IValidator 接口
可以看到这个接口只有一个返回值为布尔值run方法,写一个类来实现IValidator接口,就可以实现一个自定义验证器
初始化 RebbVal 对象之后, 调用 registerCustomValidator 方法来注册自定义验证器
时区
当我们处理日期时间的时候,时区永远是我们第一个要考虑的,我们可以像下面这样设置时区:
Last updated
Was this helpful?