我有一个用户名字段,可以将字母数字字符(包括下划线和连字符)或用户的电子邮件作为用户名。我为字母数字字符和一封带有“或”条件的电子邮件添加了 RegEx 验证,但这似乎不起作用。我可以验证无效字符,它可以识别我何时输入电子邮件,但它传递了错误的电子邮件,例如“test@test”。这是我使用的正则表达式
"/^[a-z0-9_-]{3,16}$/|"+ @"[\w\s\.@_]*"
我有一个用户名字段,可以将字母数字字符(包括下划线和连字符)或用户的电子邮件作为用户名。我为字母数字字符和一封带有“或”条件的电子邮件添加了 RegEx 验证,但这似乎不起作用。我可以验证无效字符,它可以识别我何时输入电子邮件,但它传递了错误的电子邮件,例如“test@test”。这是我使用的正则表达式
"/^[a-z0-9_-]{3,16}$/|"+ @"[\w\s\.@_]*"
如果您可以向其发送邮件,则电子邮件是有效的。
即使空格也是电子邮件中的有效字符。电子邮件中唯一需要的是@
所以你的正则表达式是
/^[\w-]{3,16}$|^[^@]+@[^@]+$/
您[\w\s\.@_]*
验证电子邮件的正则表达式可能会让您失去 50% 的潜在客户:P。
看看这些文章
底线是这些标准从未被遵循,所以最好坚持
^[^@]+@[^@]+$
创建两个正则表达式并使用 || 用于真实性验证。
您需要将 +.[AZ]{2,4} 附加到电子邮件之一以获得正确的域扩展名。它接受 2-4 个字符的域扩展名。您可以相应地调整 4。
^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$