kn-rule v0.0.8
kn-rule
常用数据校验规则,描述方式使用了antd的rule规则
所有校验都增加了xss攻击校验排除script标签
使用方法
npm i kn-rule
方法一:脱离antd单独使用
import Rule,{validate} from 'kn-rule';
// 假设当输入时需要校验用户输入是整形数字的话
const onInput=async ()=>{
let req = await validate(value,Rule.NUMBER);
if(req.success){
alert('success');
}else{
alert(req.message);
}
}
方法二:配合antd使用
import {Form,Input} from 'antd';
import Rule from 'kn-rule';
const Index=()=>{
return (
<Form>
<Form.Item label="数字" rules={Rule.NUMBER}>
<Input />
</Form.Item>
</Form>
)
}
目前支持校验类型
INPUT: 普通字符串输入(去掉字符串收尾空格后,长度不能超过128位),
INPUT_NR: 同上但是非必填,
SELECT: 用于选择项,
UPLOAD: 上传文件,
TEXTAREA: 富文本框(长度不能超过20480位),
NUMBER: 整形数字(不能带小数点),(长度不能超过12位),
NUMBER_NR: 同上但是非必填,
TITLE: 标题(长度不能超过32位),
FLOAT: 浮点数字(数字可以带小数,小数点后最长5位,总长度不能超过12位),
LINK: 链接(长度不能超过1024位),
LINK_NR: 同上但是非必填,
PWD: 密码(6-16位字母、下划线、数字任意组合的字符),
PWD_NR: 同上但是非必填,
ACCOUNT: 账号(1-12位字母、下划线、数字任意组合的字符),
ACCOUNT_NR: 同上但是非必填,
NICKNAME: 昵称(2-16为可见字符),
NICKNAME_NR: 同上但是非必填,
PHONE: 手机号,
PHONE_NR: 同上但是非必填,
WEIGHT: 权重(0~4位数字组成),
WEIGHT_NR: 同上但是非必填,
自定义规则-CUSTOM动态规则生成器
通过引入 CUSTOM 对象下的生成器,可以动态生成自定义的校验规则
import Rule,{CUSTOM} from 'kn-rule';
const onInput=async ()=>{
let req = await validate(value,CUSTOM.INPUT({min:1,max:10,noSpace:true}));
if(req.success){
alert('success');
}else{
alert(req.message);
}
}
CUSTOM动态规则生成器
INPUT - 针对常规输入框 配置|类型|描述 :--|:--|:-- min|number|最小字符长度 max|number|最大字符长度 noSpace|boolean|不得存在任何空格,默认情况下字符串的中间允许存在空格 required|boolean|是否必填
NUMBER - 针对数字输入框 配置|类型|描述 :--|:--|:-- min|number|最小数字值 max|number|最大数字值 required|boolean|是否必填
版本更新日志
- 0.0.7
修复必填校验在对null、undefined、NaN校验时判断为非空的问题