# 校验插件
校验插件@sula/plugin-form-validator扩展了表单校验中validator
的能力,提供更便捷的写法
# API
# type
校验类型,可配置类型见下方插件介绍,当没有同级属性时,type支持配置在validator属性上。自定义插件查看插件规范
注意
自定义插件必须返回Promise
示例:
rules: [
{
validator: {
type: 'whitespace',
}
}
]
// 等价于
rules: [
{
validator: 'whitespace',
}
]
类方式定义插件:
class ValidateRender {
key = "custom-validator";
apply(api) {
api.validatorType("custom::validator", (ctx, config) => {
const { form, value } = ctx;
if (form.getFieldValue('sula') !== value) {
return Promise.reject('Must be the same with Sula');
}
return Promise.resolve();
});
}
}
// 插件引入
<Form
plugins={[new ValidateRender()]}
/>
函数方式定义插件:
function validateRender(api) {
api.validatorType('custom::validator', (ctx) => {
const { form, value } = ctx;
if (form.getFieldValue('sula') !== value) {
return Promise.reject('Must be the same with Sula');
}
return Promise.resolve();
})
}
// 插件引入
<Form
plugins={[validateRender]}
/>
# 插件介绍
# whitespace
检验输入字符串中不存在空格
示例:
rules: [
{ validator: 'whitespace' }
]
# match
检验输入字符串中包含字符串
参数 | 说明 | 类型 |
---|---|---|
startsWith | 参数字符串是否在原字符串的头部 | string |
endsWith | 参数字符串是否在原字符串的尾部 | string |
includes | 是否找到了参数字符串 | string |
示例:
rules: [
{
validator: {
type: 'match',
startsWith: 'sula', // 必须以sula开头
}
}
]