如何在react中以antd形式添加自定义验证?

moh*_*pta 8 reactjs antd

我无法弄清楚如何在 React 中以antd形式添加自定义验证。验证器功能是否有效。请建议一个合适的方法。

<Form.Item
  label="Name"
  name="name"
  rules={[
    {
      required: true,
      message: 'The name is required.',
    },
    {
      pattern: /^[a-zA-Z0-9]+$/,
      message: 'Name can only include letters and numbers.',
    },
  ]}
>
  <Input />
</Form.Item>
Run Code Online (Sandbox Code Playgroud)

ale*_*ero 19

在规则数组内,您可以通过定义异步验证器函数来定义自定义验证。

<Form>
  <Form.Item
    label="Name"
    name="name"
    rules={[
      {
        required: true,
        message: 'The name is required.',
      },
      {
        message: 'this is custom',
        validator: (_, value) => {
          if (/^[a-zA-Z0-9]+$/.test(value)) {
            return Promise.resolve();
          } else {
            return Promise.reject('Some message here');
          }
         }
       }
     ]}
  >
    <Input />
  </Form.Item>
</Form>
Run Code Online (Sandbox Code Playgroud)

  • 尽管如果您只想测试输入是否通过正则表达式,您可以使用本机“{pattern, message}”接口,就像您在问题中发布的那样 (2认同)