概念

输入

输入就是待校验的对象,将会被应用到后面的规则中进行判断,也是val函数的第一个参数。

Rebb Val 支持以下数据类型:

输入对象的类型

布尔型 Boolean

数字型 Number

包括整形,长整型,浮点型,高精度浮点型,在Java实现中,内部都会转换成BigDecimal类型来处理。

日期型 Date

在Java中,输入可以是一个java.uitl.Date类型

可以用RebbVal的内置函数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内置函数year()来将年份字符串快捷地转换成日期

字符串型 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操作来反转规则

可以用andor来组合规则

规则中的数据类型

数组 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?