使用电子邮件地址作为用户名的正则表达式?

Skr*_*ubb 2 regex validation asp.net-mvc data-annotations

是否有正则表达式可以使用普通用户名或电子邮件地址作为用户名?我希望用户能够输入自己的用户名,或者仅使用他们的电子邮件地址作为用户名,但我无法找到有关如何正确实现此目的的任何可靠信息。它还必须通过验证,例如:如果用户选择创建自己的用户名,则必须遵守我的用户名策略,该策略限制它们以字母或数字开头,并且不能包含特殊字符,或者,如果他们输入电子邮件,则必须遵守电子邮件规则(典型的电子邮件规则)。有人对此有什么建议吗?

Ste*_*han 6

试试这个正则表达式:

/^(?:[A-Z\d][A-Z\d_-]{5,10}|[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4})$/i
Run Code Online (Sandbox Code Playgroud)

该表达式有两部分:

  • 第一部分验证用户名。请随意优化此部分以匹配您自己的策略。这里的正则表达式接受以字母或数字开头的用户名。用户名不能超过 11 个字符。-和 '_' 是允许的。

  • 第二部分验证电子邮件。该正则表达式验证了截至撰写本文时99% 的正在使用的电子邮件。但是,您可以使用其他电子邮件正则表达式。

描述

正则表达式可视化

参考