JavaScript 如何用正则表达法验证电子邮件地址

JavaScript 如何用正则表达法验证电子邮件地址

任何人在输入字段中输入电子邮件时都可能犯错。因此,开发人员有责任检查用户是否输入了有效的电子邮件字符串。有许多库可以用来验证电子邮件地址,我们可以在各种JavaScript框架中使用这些库,但不能在vanilla JavaScript中使用。然而,如果我们想使用任何库,我们需要使用其CDN。

这里,我们将使用正则表达式来验证vanilla 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.", "you@gmail.com");
         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+ - 它代表任何字母数字的单词。

  • – 它代表点字符。

基本上,上述模式匹配的是word@word.word 种电子邮件地址。

例子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 = "abc@gmail.com">
   <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>

我们学习了使用正则表达式来验证电子邮件字符串。我们看到了两种正则表达式,并对此进行了解释,因此初学者可以理解如何为电子邮件创建正则表达式。

此外,开发人员可以根据他们想要验证的电子邮件地址,创建他们的自定义正则表达式。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

JavaScript 教程