Reactjs Antd输入仅获取具有特定限制的数字数据

Reactjs Antd输入仅获取具有特定限制的数字数据,reactjs,antd,Reactjs,Antd,我使用antd组件只输入数字,也输入最大数字。我的代码如下: <Form.Item name="amount" rules={[ { pattern: /^[\d]{0,9

我使用antd组件只输入数字,也输入最大数字。我的代码如下:

                         <Form.Item
                              name="amount"
                              rules={[
                                {
                                  pattern: /^[\d]{0,9}$/,
                                  message: "Value should be less than 999999999",
                                },
                              ]}
                            >
                              <Input
                                type="number"
                                onChange={(e) => {
                                  const re = /^[0-9\b]$/;
                                  if ((e.target.value = "" || re.test(e.target.value)))
                                    //use that number
                                }}
                              />
                            </Form.Item>

{
常数re=/^[0-9\b]$/;
如果((e.target.value=”“| |重新测试(e.target.value)))
//用那个号码
}}
/>
然而,如果我输入字母e或-,它不会给我表单项验证,我写的正则表达式是错误的吗? 我的要求是:

  • 仅接受数字、无字符或e字符且具有特定maxLength的输入框
  • 这可以通过不让用户键入这些字符或在任一条件失败时提供antd验证消息来实现

我应该如何重构代码以获得期望的结果?目前它接受-digit,并且没有给出任何错误消息。TIA

您不能使用
。它有最小的道具,你可以把0或1作为值。这样就不能输入负数。不管怎么说,这封信也没什么特别之处,所以你应该表现得很好。注意-您可以在输入中输入任何值,但一旦焦点消失,该值将设置为默认值<代码>我不希望它自己变成默认值,我希望用户明确地知道错误。在这种情况下,您应该使用Formik和Yup进行表单处理,这将符合要求。regex/^[0-9]{0,9}$/是否满足您的要求?