如何在 ReactJS 中验证电子邮件?
电子邮件验证是我们需要添加到身份验证表单中的重要功能。如今,大多数应用程序都使用电子邮件和一次性密码进行身份验证。如果用户输入了错误的电子邮件,他们就无法验证自己的身份。
此外,我们需要在通过联系表单获取用户的电子邮件时验证电子邮件。用户可能会因为某些错误而输入错误的电子邮件格式。因此,为了纠正用户的错误,我们可以通过显示您输入了错误的电子邮件的错误来提醒他们。
下面,我们将学习两种使用不同方法验证用户电子邮件地址的方法。
使用验证器 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 包提供了一种标准的验证方法,因为许多开发人员都在测试它。
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

