如何在 ReactJS 中验证电子邮件?

react jsjavascriptfront end technology

电子邮件验证是我们需要添加到身份验证表单中的重要功能。如今,大多数应用程序都使用电子邮件和一次性密码进行身份验证。如果用户输入了错误的电子邮件,他们就无法验证自己的身份。

此外,我们需要在通过联系表单获取用户的电子邮件时验证电子邮件。用户可能会因为某些错误而输入错误的电子邮件格式。因此,为了纠正用户的错误,我们可以通过显示您输入了错误的电子邮件的错误来提醒他们。

下面,我们将学习两种使用不同方法验证用户电子邮件地址的方法。

使用验证器 npm 包

NPM 包是 ReactJS 中的一个库模块。我们可以将它安装在我们的项目中并通过导入它来使用它。

在这里,我们需要安装验证器 npm 包。用户可以在终端中输入以下命令,在项目目录中安装验证器 npm 包。

npm i validator

验证器模块包含各种方法来验证电子邮件、电话号码等。因此,我们可以使用验证器 npm 包的 isEmail() 方法来验证电子邮件,该方法根据电子邮件是否有效返回布尔值。

语法

用户可以按照以下语法使用验证器 npm 包在 ReactJS 中验证电子邮件。

if (validator.isEmail(new_Email)) {
    // 电子邮件有效
} else {
    // 电子邮件无效
}

在上面的语法中,我们使用了验证器。此外,我们已将 new_Email 作为 isEmail() 方法的参数传递以进行验证。

示例

在下面的示例中,我们创建了用户输入以从用户那里获取电子邮件。每当输入字段发生变化时,它都会调用 handleEmail () 函数。

在 handleEmail() 函数中,我们使用"event.target.value"获取新输入,并使用 setEmail() 更改电子邮件变量的值。此外,我们还使用了验证器的 isEmail() 方法来验证从用户那里获得的电子邮件。

import React, { useState } from "react";
import validator from "validator";

const App = () => {
  const [email, setEmail] = useState("bac@gmail.com");
  const [message, setMessage] = useState(" ");
  function handleEmail(event) {
    let new_Email = event.target.value;
    setEmail(new_Email);
    if (!validator.isEmail(new_Email)) {
      setMessage("Please, enter a valid email!");
    } else {
      setMessage("");
    }
  }
  return (
    <div>
      <h2>
        {" "}
        Validate the email
        <i> using validator npm package </i>
      </h2>
      <div style = {{ color: "red" }}> {message} </div>
      <input type = "email" value = {email} onChange = {handleEmail} />
      <div> The email entered is {email} </div>
    </div>
  );
};

export default App;

输出

使用正则表达式在 ReactJS 中验证电子邮件

正则表达式是一种类似字符串的字符模式。我们需要遵循正则表达式的一些规则来创建它。

我们可以创建一个正则表达式来验证电子邮件,然后使用 test() 方法检查电子邮件是否与电子邮件模式匹配。

语法

用户可以按照以下语法使用正则表达式在 ReactJS 中验证电子邮件地址。

let emailRegex = /[a-z0-9]+@[a-z]+\.[a-z]{2,3}/;
if (!emailRegex.test(inputValue)) {
// 无效电子邮件
} else {
// 有效电子邮件
}

在上述语法中,我们将正则表达式模式作为 test() 方法的引用,并将电子邮件作为 test() 方法的参数传递以进行验证。

正则表达式解释

  • / / - 它表示正则表达式的开始和结束。

  • [a-z0-9]+ - 它表示 a 到 z 和 0 到 9 之间至少一个字符。

  • @ - 它表示电子邮件应始终包含 @ 字符。

  • [a-z]+ – 电子邮件在"@"后应始终包含至少一个字符。

  • \. – 它验证电子邮件中域名后的点。

  • [a-z]{2,3} – 它表示电子邮件的最后点后应包含两个或三个字符。

示例

在下面的示例中,emailRegex 变量包含搜索模式。每当用户输入电子邮件时,它都会使用 test() 方法验证输入值。如果 test() 方法发现输入不匹配,则使用 setMessage() 设置错误消息。

用户可以输入错误的电子邮件格式并在输出中观察错误输出。

import React, { useState } from "react";

const App = () => {
  const [email, setEmail] = useState("yourmail@mail.com");
  const [message, setMessage] = useState(" ");
  function handleEmail(event) {
    let inputValue = event.target.value;
    setEmail(inputValue);

    let emailRegex = /[a-z0-9]+@[a-z]+\.[a-z]{2,3}/;
    if (!emailRegex.test(inputValue)) {
      setMessage("Error! you have entered invalid email.");
    } else {
      setMessage("");
    }
  }
  return (
    <div>
      <h2>
        {" "}
        Validate the email
        <i> using the regular expression </i>
      </h2>
      <div style = {{ color: "red" }}> {message} </div>
      <input type = "email" value = {email} onChange = {handleEmail} />
      <div> Your email is {email} </div>
    </div>
  );
};

export default App;

输出

在本教程中,用户学习了如何在 ReactJS 中验证电子邮件。我们使用验证器 NPM 包和正则表达式来验证用户的电子邮件地址。使用 NPM 包和正则表达式来验证电子邮件地址有其好处。

当您使用正则表达式时,您可以自己对其进行自定义以进行验证,Validator npm 包提供了一种标准的验证方法,因为许多开发人员都在测试它。


相关文章