我的电子邮件正则表达式有什么问题

Whats wrong with my email regex?

本文关键字:什么 问题 正则表达式 电子邮件 我的      更新时间:2023-09-26

我有以下正则表达式:

var emailRegex = "^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:'.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$"

当我尝试输入时:

asd@asd

它匹配。为什么?

电子邮件服务不必连接到任何域。以下电子邮件都是正确的:

  • cezary@localhost
  • cezary@192.168.1.100
  • cezary@domain
  • cezary@com

请参阅"有效电子邮件地址"下的详细信息:https://en.wikipedia.org/wiki/Email_address

因此,如果您只想允许公共电子邮件,请尝试其他正则表达式:-)

在 JavaScript 中验证电子邮件地址? 回答您的问题
试试这个:

function validateEmail(email) {
    var re = /^(([^<>()'[']''.,;:'s@"]+('.[^<>()'[']''.,;:'s@"]+)*)|(".+"))@(('[[0-9]{1,3}'.[0-9]{1,3}'.[0-9]{1,3}'.[0-9]{1,3}])|(([a-zA-Z'-0-9]+'.)+[a-zA-Z]{2,}))$/;
    return re.test(email);
}
alert(validateEmail("test@gmail.com"));