使用JavaScript中的正则表达式验证电子邮件地址
#javascript #网络开发人员 #regex #emailvalidation

电子邮件地址是在线通信的关键部分,并确保用户输入的电子邮件地址有效是任何Web应用程序的重要任务。在此博客文章中,我们将讨论如何根据官方RFC 5322标准中指定的规则在JavaScript中使用正则表达式来验证电子邮件地址。

首先,让我们看一下我们将用于验证的正则表达式:

const 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])?)*$/;

乍一看,这种正则表达式可能看起来令人生畏,但实际上是由几个较小,更简单的正则表达式组成的,这些表达式组合在一起以形成完整的电子邮件地址验证模式。让我们分解:

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@/

正则表达式的第一部分与电子邮件地址的本地部分匹配,该部分由用户名和域名组成(例如,john.doe@example.com中的John.doe)。正则表达式的这一部分允许本地部分包含字母,数字和一些特殊字符(。 [backtick],{,|,},〜和 - )。

/@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?/

正则表达式的下一部分匹配电子邮件地址的域名(例如john.doe@example.com中的example.com)。正则表达式的这一部分允许域名包含字母和数字,并允许在域名中使用连字符(-)来使用国际化域名(IDN)。

/(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/

正则表达式的最后一部分与电子邮件地址的顶级域(TLD)匹配(例如john.doe@example.com中的com)。正则表达式的这一部分允许TLD包含字母和数字,并允许在TLD中使用连字符(-)来使用IDN TLD。

现在我们对正则表达式有了彻底的了解,让我们看看如何使用