输入就是待校验的对象,将会被应用到后面的规则中进行判断,也是val函数的第一个参数。
Rebb Val 支持以下数据类型:
包括整形,长整型,浮点型,高精度浮点型,在Java实现中,内部都会转换成BigDecimal类型来处理。
在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
规则就是一个字符串,但是必须符合RebbVal的语法,是val函数的第二个参数
支持的语法如下:
区间:interval,如[a..b],(a..b),[a..b),(a..b]
是否满足:is (true, false, phone, email, ipv4,url, ect.)
自定义判断:is (custom function)
年龄大于/小于:older than/younger than
以...开始/结束:starts with/ends with
可以使用not操作来反转规则
可以用and 和or来组合规则
val 函数的结果是一个布尔型。
如果结果是true,说明输入对象通过了所有的规则校验,否则可以通过调用 getErrors 方法来获取所有校验失败的详细信息。
如果val函数返回false,或者hasError函数返回true,那就代表有错误,验证失败。
可以调用getErrors函数来获取具体的错误信息,返回值是一个字符串数组(在Java实现中,是一个ArrayList<String>)。
先来看一下 com.rebb.valid.IValidator 接口
可以看到这个接口只有一个返回值为布尔值run方法,写一个类来实现IValidator接口,就可以实现一个自定义验证器
初始化 RebbVal 对象之后, 调用 registerCustomValidator 方法来注册自定义验证器
当我们处理日期时间的时候,时区永远是我们第一个要考虑的,我们可以像下面这样设置时区: