React Ant form 自定义校验规则以及正则校验

<Form.Item
  label="分类名称"
  name="name"
  rules={[
    {required: true, message: '请输入分类名称'},
    {
      validator: (_, value) => {
        return value.length > 20 ? Promise.reject('分类名称不能超过20个字符') : Promise.resolve();
      }
    },
  ]}
>
  <Input maxLength={20} placeholder="分类名称"/>
</Form.Item>

validator接受两个参数的值,一个值rule,是你当前定义的rules上的属性和方法以及你定义的规则,另一个值为当前from表单中value,且返回值必须为Promise

             <Form  form={form} onFinish={onFinish} onFinishFailed={onFinishFailed}>
               <Form.Item
                  label="用户名"
                  name="username"
                  rules={[
                          {
                            pattern:/^(0|86|17951)?(13[0-9]|15[012356789]|166|17[3678]|18[0-9]|14[57])[0-9]{8}$/,
                            validator: (rule, value) =>{
                            return rule.pattern.test(value) ? Promise.resolve() : value ? Promise.reject(new Error('提示错误消息')) :                                     Promise.reject(new Error('提示消息不能为空'))
                              },
                          }
                        ]}
                        >
                  <Input placeholder="Select a option and change input text above"/>
                </Form.Item>
              <Button type="primary" htmlType="submit">登录</Button>
              <Button htmlType="button" type="dashed" onClick={onReset}>重值</Button>
            </ Form>

正则校验

             <Form  form={form} onFinish={onFinish} onFinishFailed={onFinishFailed}>
               <Form.Item
                  label="用户名"
                  name="username"
                  rules={[
                          {
                            pattern:/^(0|86|17951)?(13[0-9]|15[012356789]|166|17[3678]|18[0-9]|14[57])[0-9]{8}$/,
                            validator: (rule, value) =>{
                            return rule.pattern.test(value) ? Promise.resolve() : value ? Promise.reject(new Error('提示错误消息')) :                                     Promise.reject(new Error('提示消息不能为空'))
                              },
                          }
                        ]}
                        >
                  <Input placeholder="Select a option and change input text above"/>
                </Form.Item>
              <Button type="primary" htmlType="submit">登录</Button>
              <Button htmlType="button" type="dashed" onClick={onReset}>重值</Button>
            </ Form>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小萝卜-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值