一些比较复杂的验证逻辑,感觉用正则表达式搞不定,如何自定义验证方法?
官网文档里面说要参考async-validate库的规则,但是今天研究了半天还是没弄明白,请高人给解释一下,多谢了!
一些比较复杂的验证逻辑,感觉用正则表达式搞不定,如何自定义验证方法?
官网文档里面说要参考async-validate库的规则,但是今天研究了半天还是没弄明白,请高人给解释一下,多谢了!
请仔细看文档
https://ant.design/components...
有提供专门的validator属性自定义检验
<FormItem
{...formItemLayout}
label="Confirm Password"
{getFieldDecorator('confirm', {
rules: [{
required: true, message: 'Please confirm your password!',
}, {
validator: this.compareToFirstPassword,
}],
})(
<Input type="password" onBlur={this.handleConfirmBlur} />
)}
</FormItem>
compareToFirstPassword = (rule, value, callback) => {
const form = this.props.form;
if (value && value !== form.getFieldValue('password')) {
callback('Two passwords that you enter is inconsistent!');
} else {
callback();
}
}
看了下rc-form的源码,自己解决了。
rules数组里面的元素可以是方法,具体参数见下面源码。
我的目的是验证多重选择框中,确保每一个元素都是个数字。正则比较low,不要在意。