gpt4 book ai didi

javascript - 全能表单字段上的正则表达式

转载 作者:行者123 更新时间:2023-12-03 02:24:45 25 4
gpt4 key购买 nike

我有一个表单字段,其中有一个输入字段:它可以是用户名或电子邮件地址。

对于用户名,数字和字母的任意组合都可以:

johndoe101_username

但是,同一字段中的电子邮件也有效:

johndoe@example.com

我很难找到一个正则表达式同时接受这两个条件。基本上,如果用户名包含“@”符号,则它必须是有效的电子邮件地址。

我尝试使用

/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/

但这排除了某人只有用户名而没有电子邮件地址的情况。

这可以做到吗?我知道建议只使用两个单独的输入字段,但设计只需要一个。

最佳答案

您的正则表达式实际上匹配电子邮件,但不匹配用户名。您的用户名模式与 \w 相同它接受字母、数字和_。

因此,如果您想要电子邮件或用户名,请使用 | (或)运算符:

^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$|^\w{4,10}$

+运算符代表一到无限个操作系统字符,例如,如果您的用户名必须至少有 4 个字符且不超过 10 个字符,则可以使用 |\w{4,10}相反。

关于javascript - 全能表单字段上的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48998396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com