【发布时间】:2021-11-22 00:15:02
【问题描述】:
目前我正在使用以下代码来验证电子邮件
public static bool IsValidEmail(string email)
{
var r = new Regex(@"^([0-9a-zA-Z]([-\.\'\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$");
return !string.IsNullOrEmpty(email) && r.IsMatch(email);
}
现在要验证此“abc@a.bb.com”电子邮件是否为有效电子邮件 ID。正则表达式需要做哪些改变?
【问题讨论】:
-
不使用正则表达式?即使emailregex.com 有时也是错误的。你可以改用docs.microsoft.com/en-us/dotnet/api/…。
-
@jeremy 感谢您的回复,我希望在我的正则表达式中进行必要的更改/编辑以接受“abc@a.bb.com”
-
([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+仅匹配以字母数字开头和结尾的子域,因此必须包含 2 个字符。但我仍然不会尝试“修复”正则表达式,因为正则表达式永远会 100% 正确。不要试图用锤子做任何事情,使用正确的工具。如果您想检查电子邮件是否有效,请尝试发送验证码。