yarn add antd-form-rules
# 或者
npm install antd-form-rules --save
import { FormRules } from 'antd-form-rules';
getFieldDecorator('id', {
rules: FormRules.withName('字段名').isRequired().create(),
});
规则必须先初始化才能做链式调用
FormRules.withName('字段');
生成的规则由该方法统一转换为antd需要的格式
FormRules.withName('字段').create();
通用方法,用于强调前一个规则是必填的,不能跳过。
FormRules.withName('字段')
.string(1, 15).isRequired()
.match(/\w+/).isRequired()
.create();
FormRules.withName('字段').string().isRequired().create();
如果isRequired前面没有规则,那么会默认添加一个string()的规则
FormRules.withName('字段').isRequired().create();
// 等于
FormRules.withName('字段').string().isRequired().create();
字符串规则,可自定义长度
FormRules.withName('字段').string().create();
FormRules.withName('字段').string(1, 15).create();
FormRules.withName('字段').string(20).create();
FormRules.withName('字段').string(undefined, 20).create();
布尔值规则,常用于Radio
数组规则
国内11位手机号
数字,包括小数、整数、负数、正数
FormRules.withName('字段').number().create();
FormRules.withName('字段').number(0.01, 1).create();
FormRules.withName('字段').number(0).create();
FormRules.withName('字段').number(undefined, 5).create();
只能是整数
FormRules.withName('字段').integer().create();
FormRules.withName('字段').integer(1).create();
FormRules.withName('字段').integer(1, 5).create();
FormRules.withName('字段').integer(undefined, 5).create();
邮箱号规则
正则匹配
FormRules.withName('字段').match(/\w\s*\w/).isRequired().create();
超链接规则
自定义规则
FormRules.withName('字段').callback((value, field) => {
if (value !== '孙悟空') {
return new Error('这个是六耳猕猴');
}
}).create();
第二代身份证
禁止包含空格
数据必须是对象。如时间控件返回的是moment的对象
如果以上规则都不能满足你,那么可以用这个append直接添加antd的原生规则。或者欢迎issue
import { FormRuleType } from 'antd-form-rules';
FormRules.withName('字段').string().append({ required: true, type: FormRuleType.object }).create();