1

我有一个用户名字段,可以将字母数字字符(包括下划线和连字符)或用户的电子邮件作为用户名。我为字母数字字符和一封带有“或”条件的电子邮件添加了 RegEx 验证,但这似乎不起作用。我可以验证无效字符,它可以识别我何时输入电子邮件,但它传递了错误的电子邮件,例如“test@test”。这是我使用的正则表达式

"/^[a-z0-9_-]{3,16}$/|"+ @"[\w\s\.@_]*"
4

2 回答 2

1

如果您可以向其发送邮件,则电子邮件是有效的。

即使空格也是电子邮件中的有效字符。电子邮件中唯一需要的是@

所以你的正则表达式是

 /^[\w-]{3,16}$|^[^@]+@[^@]+$/

[\w\s\.@_]*验证电子邮件的正则表达式可能会让您失去 50% 的潜在客户:P。


看看这些文章

底线是这些标准从未被遵循,所以最好坚持 ^[^@]+@[^@]+$

于 2013-06-26T14:07:39.483 回答
0

创建两个正则表达式并使用 || 用于真实性验证。

您需要将 +.[AZ]{2,4} 附加到电子邮件之一以获得正确的域扩展名。它接受 2-4 个字符的域扩展名。您可以相应地调整 4。

  ^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$
于 2013-06-26T14:06:44.430 回答