首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >表单的正则表达式模式匹配验证在ant.design中不起作用

表单的正则表达式模式匹配验证在ant.design中不起作用
EN

Stack Overflow用户
提问于 2020-04-05 18:12:10
回答 1查看 5.3K关注 0票数 3

我有以下输入要验证,以匹配此表单的uuid:

代码语言:javascript
运行
复制
51de1069-c0fd-4418-8378-5871c597023b

这是似乎不会触发验证的表单:

代码语言:javascript
运行
复制
<Form
    name="id"
    onFinish={this.handleJoin}
    size="large"
>
    <Form.Item
        name="channelId"
        rules={[
            {
                required: true,
                type: "regexp",
                pattern: new RegExp("[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"),
                message: 'Please enter a valid existing channel ID',
            },
        ]}
    >
        <Input min={30} max={40} placeholder="Enter channel ID" autoFocus={true} ref={this.input}/>
    </Form.Item>
    <Form.Item>
        <Button type="primary" htmlType="submit" block size="large" icon={<LoginOutlined />}>
            Join
        </Button>
    </Form.Item>
</Form>

当我单击join按钮时,验证似乎没有运行。有什么想法吗?

当我像下面这样做验证时,它工作了,我在输入下面得到一条红色的错误消息:

代码语言:javascript
运行
复制
{
    required: true,
    message: 'Please enter a valid existing channel ID',
}
EN

回答 1

Stack Overflow用户

发布于 2020-08-18 19:08:34

你只需要改变你的模式声明,而且我认为你应该拆分规则。如下所示进行更改:

代码语言:javascript
运行
复制
   rules={[
            {
                required: true,
                message: 'Channel ID is required',
            },{
                pattern: /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/,
                message: 'Please enter a valid channel ID',
            }
        ]}
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61040985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档