如何在JavaScript中使用正则表达式验证邮箱地址?
任何人在输入字段中输入电子邮件时都可能出错。因此,检查用户是否输入了有效的电子邮件字符串是开发人员的责任。许多库可用于验证电子邮件地址,我们可以将它们与各种 JavaScript 框架一起使用,但不能与原生 JavaScript 一起使用。但是,如果我们想使用任何库,我们需要使用它的CDN。
在这里,我们将使用正则表达式来验证原生 JavaScript 中的电子邮件地址。
示例 1 中使用的正则表达式
我们在示例 1 中使用了以下正则表达式模式来验证电子邮件。
let regex = /^[a-z0-9]+@[a-z]+\.[a-z]{2,3}$/;
用户可以参考以下对上述正则表达式的解释。
^ - 表示字符串的开头。
[a-z0-9]+ - 字符串开头可以是a到z和0到9之间的任意字符。
@ - 字符串中应在一些字母数字字符后包含“@”字符。
[a-z]+ - “@”字符后字符串中至少应包含一个a到z之间的字符。
\. – 电子邮件应包含一个点,后跟一些字符,再后跟“@”字符
[a-z]{2,3}$ - 字符串末尾应包含两个或三个字母字符。“$”表示字符串的结尾。
示例 1
在下面的示例中,当用户点击按钮时,它将调用validateEmail()函数。在validateEmail()函数中,我们使用JavaScript的prompt()方法从用户那里获取电子邮件输入。
之后,我们创建了如上语法中所解释的正则表达式。我们使用正则表达式来使用test()方法测试用户的电子邮件输入,该方法根据电子邮件是否与正则表达式匹配返回布尔值。
<html> <body> <h3>Using the <i> Regular expression </i> to validate email in JavaScript </h3> <div id = "output"> </div> <button onclick = "validateEmail()"> Validate any email </button> <script> var output = document.getElementById('output'); function validateEmail() { let userEmail = prompt("Enter your email.", "[email protected]"); let regex = /^[a-z0-9]+@[a-z]+\.[a-z]{2,3}$/; let result = regex.test(userEmail); if (result) { output.innerHTML = "The " + userEmail + " is a valid email address!"; } else { output.innerHTML = "The " + userEmail + " is not a valid email address!"; } } </script> </body> </html>
示例 2 中使用的正则表达式
我们在示例 2 中使用了以下正则表达式模式来验证电子邮件。
let regex = new RegExp(/\S+@\S+\.\S+/);
用户可以参考以下对上述正则表达式的解释。
\S+ - 表示任何字母数字单词。
\. – 表示点字符。
基本上,上述模式匹配[email protected] 类型的电子邮件地址。
示例 2
在下面的示例中,我们使用HTML创建了电子邮件输入。用户可以在输入字段中输入任何电子邮件。在将电子邮件输入输入后,用户需要单击“验证输入电子邮件”按钮,这将调用submitEmail()函数。
在submitEmail()函数中,我们使用上述正则表达式和test()方法来检查用户的输入电子邮件字符串。
在输出中,用户可以输入各种电子邮件并观察输出。
<html> <head> <style> div { font-size: 1rem; color: red; margin: 0.1rem 1rem; } </style> </head> <body> <h2>Using the <i> Regular expression </i> to validate email in JavaScript </h2> <div id = "output"> </div> <input type = "email" id = "emailInput" placeholder = "[email protected]"> <br><br> <button onclick = "submitEmail()"> Validate input email </button> <script> var output = document.getElementById('output'); function submitEmail() { let userEmail = document.getElementById('emailInput').value; let regex = new RegExp(/\S+@\S+\.\S+/); let isValid = regex.test(userEmail); if (isValid) { output.innerHTML = "The " + userEmail + " is a valid email address!"; } else { output.innerHTML = "The " + userEmail + " is not a valid email address!"; } } </script> </body> </html>
我们学习了如何使用正则表达式验证电子邮件字符串。我们已经看到了两个正则表达式,并对其进行了解释,以便初学者可以理解如何为电子邮件创建正则表达式。
此外,开发人员可以根据自己的需要创建自定义正则表达式来验证电子邮件地址。