验证react中ant design InputNumber的最大长度

Zah*_*ebi 5 validation input reactjs antd

InputNumberForm.Item一个 React 项目中有一个 antd 。我对此输入的验证是检查输入值的长度。

这是我的代码:

render() {
    return (
      <Form.Item
        label="Value"
        name="numberValue"
        rules={[
          {
            pattern: /^(?:\d*)$/,
            message: "Value should contain just number",
          },
          {
            maxLength: 50,
            message: "Value should be less than 50 character",
          },
        ]}
        validateTrigger="onBlur"
      >
        <InputNumber
          onChange={(value) => {
            this.props.setValue(value);
          }}
        />
      </Form.Item>
    );
  }
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

  1. 我想Value should contain just number在用户输入非数字字符时显示消息。但这条消息根本不显示。

  2. 我想Value should be less than 50 character在用户输入超过 10 个字符的数字/值时显示消息。但现在,输入第一个字符后,就会显示此消息!

Rob*_*acs 6

取决于您使用哪个验证库。

InputNumbermax 是Number.MAX_SAFE_INTEGER,所以也许使用一个简单的<Input>模式匹配器:

  render() {
    return (
      <Form.Item
        label="Value"
        name="numberValue"
        rules={[
          {
            pattern: /^(?:\d*)$/,
            message: "Value should contain just number",
          },
          {
            pattern: /^[\d]{0,50}$/,
            message: "Value should be less than 50 character",
          },
        ]}
        validateTrigger="onBlur"
      >
        <Input
          onChange={(value) => {
            this.props.setValue(value);
          }}
        />
      </Form.Item>
    );
  }
Run Code Online (Sandbox Code Playgroud)