如何使用正则表达式在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.", "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>
我们学习了如何使用正则表达式验证电子邮件字符串。我们看到了两个正则表达式,并解释了它们,以便初学者能够理解如何创建用于验证电子邮件的正则表达式。
此外,开发人员可以根据自己的需要创建自定义正则表达式来验证电子邮件地址。