RegEx验证姓名和电子邮件



我想验证电子邮件格式的名称,可以处理这两种模式

  1. test@domain.com
  2. test user <test@domain.com>
  3. test user<test@domain.com>
  4. "test user" <test@domain.com>
  5. "test user"<test@domain.com>

无效的

  1. "test user" <test@domain.com
  2. "test user" test@domain.com>
  3. test user <test@domain.com
  4. test user test@domain.com>
  5. "test user <test@domain.com>
  6. test user" <test@domain.com>
  7. "test user" test@domain.com

这是我的进度:https://regex101.com/r/Q00McL/1

为什么4. "test user" test@domain.com (valid)7. "test user" test@domain.com (invalid)项相同?

如果你想让"test user" test@domain.com有效,使用这个模式:

^(?:(?:"[^"rn]+"|w+(?: +w+)*) *)?w+@[^<>s@]+.w{2,3}$

相反,如果"test user" test@domain.com无效,则使用:

^(?:(?:"[^"rn]+"|w+(?: +w+)*)*)?w+@[^<>s@]+.w{2,3}$

最新更新