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>
我们学习了使用正则表达式来验证电子邮件字符串。我们看到了两种正则表达式,并对此进行了解释,因此初学者可以理解如何为电子邮件创建正则表达式。
此外,开发人员可以根据他们想要验证的电子邮件地址,创建他们的自定义正则表达式。