# jValid
**Repository Path**: Extremepyz/jValid
## Basic Information
- **Project Name**: jValid
- **Description**: 1个类搞定后台验证
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 11
- **Created**: 2017-10-09
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
#jValid【原创】
##一个类搞定javabean的验证【依赖fastjson】
【1个类搞定后端验证,依赖fastjson;默认使用的jdk8的编译级别。如果使用jdk6,使用validator6包下的类】
配置说明:json对象配置的方式,以{属性名:规则}的格式配置,多个规则之间使用";"分隔如:{属性名:规则1;规则2}
使用说明:MsgValidator用于需要返回验证消息的验证。辅助于开发或前端消息展示【可以根据需要自己定义消息】;ValidatorJ仅用于校验,不反悔验证失败的规则消息;
####不要验证消息[使用ValidatorJ] 与 要验证消息[使用MsgValidator]
if(!MsgValidator.valid(mobile, cfgs)){
req.set("msg",MsgValidator.msg());//获取验证失败的消息
return "验证不通过";
}
if(ValidatorJ.valid(mobile, cfgs)){
return "验证通过";
}
####通用规则
* 必填验证required:"{email:'required;email'}"
* 可选验证,去掉required规则即可:"{email:'email'}"
####字符串的规则
* pattern:"{mobile:\"required;pattern:\^((13[0-9])|(15[\^4,\\\\\\\\D])|(18[0,5-9]))\\\\\\\\d{8}$\"}"
* length必须为11个长度:"{mobile:'required;length:11'}"
* length必须小于等于11个长度:"{address:'required;length:0,11'}"
* length必须为6~12个长度:"{password:'required;length:6-12'}"
备注:
1.可选验证就是可空的字段,但是,有时候比如手机号,不填不校验,填了需要校验的这种情况。
2.有pattern规则的时候,需要将所有规则用双引号引起来,如上,否则内部解析会有问题,还有\\\\需要写为\\\\\\\\
***
####日期时间规则
* 日期:"{createDate:'required;date'}"
* 时间:"{createTime:'required;time'}"
* 日期时间:"{createDate:'required;datetime'}"
* 时间戳:"{createDate:'required;timestamp'}"
***
####integer规则
* 全部整数:"{age:'required;integer'}"或"{age:'required;integer:+0-'}"
* 正整数:"{age:'required;integer:+'}"
* 负整数:"{age:'required;integer:-'}"
* 0和正整数:"{age:'required;integer:0+'}"
* 0和负整数:"{age:'required;integer:0-'}"
***
####range规则
* 范围域,0-50的闭区间:{amount:'required;range:[0,50]'}
* 离散域[类似枚举]:{amount:'required;range:(-2,-1,0,1,2,3)'}
* 范围域+离散域:{amount:'required;range:(-2,-1,0,1,2,3)[10,100]'}
***
####compare规则
* 小于:"{createTime:'required', updateTime:'required;compare:<,createTime'}"
* 大于:"{createTime:'required', updateTime:'required;compare:>,createTime'}"
* 小于等于:"{createTime:'required', updateTime:'required;compare:<=,createTime'}"
* 大于等于:"{createTime:'required', updateTime:'required;compare:>=,createTime'}"
备注:支持字符串的大小,日期,时间,日期时间,数字的大小,金额的大小比较
如果你喜欢,请支持一下作者,鼓励我做更多更好用的开源作品。
####使用方法
#####字符串的校验
//只支持字符串单值校验,别的类型可以转成字符串,因为所有类型都可以用字符串表示
String mobile = "13265968748";
//校验规则,属性名可以随意,这里使用"val"
String cfgs = "{val:'required;mobile'}";
if(ValidatorJ.valid(mobile, cfgs)){
return "验证通过";
}else{
return "验证不通过";
}
#####java bean的校验
Cup cup = new Cup("0");//bean对象
String cfgs = "{name:'required;integer'}";//校验规则
if(ValidatorJ.valid(cup, cfgs)){
return "验证通过";
}else{
return "验证不通过";
}
#####list