本文介绍如何使用JavaScript验证电子邮箱格式。通过indexOf和lastIndexOf方法检查@符号和点号的位置,确保@不在首位且其后存在点号。提供完整HTML表单示例及代码解析,帮助开发者快速实现前端邮箱格式校验功能。
JavaScript邮箱格式验证:基于indexOf与lastIndexOf的实现
在最近进行的一个前端开发项目中,需要实现数据输入验证功能,具体要求为:用户输入的字符串必须同时包含“@”符号和点号“.”。此外,还需要满足特定的格式约束:“@”符号不能出现在字符串的起始位置,且在“@”符号之后必须至少存在一个点号“.”。
代码实现
1:代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>利用JavaScript验证是否符合电子邮箱地址</title>
</head>
<script type="text/javascript">
// 创建第一个函数validate_emil()并包含两个参数
function validate_email(field, alerttxt) {
with (field) {
//利用indexOf() 方法返回某个指定的字符串值在字符串中首次出现的位置--定义一个变量apos将第一次出现的“@”赋值给apos
apos = value.indexOf("@");
//利用lastIndexOf() 方法返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索--
//stringObject.lastIndexOf(searchvalue,fromindex)
//fromindex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的最后一个字符处开始检索。
dotpos = value.lastIndexOf(".");
// 判断符合"@"的位置,或者"."的位置是否在"@"的后面
if (apos < 1 || dotpos - apos < 2) {
// 利用alert()弹出一个警告窗来执行alerttxt的操作
// 邮箱地址不符合
alert(alerttxt);
return false;
} else {
// 邮箱地址符合
return true;
}
}
}
// 创建第二个函数validate_form()并包含一个参数
function validate_form(thisform) {
with (thisform) {
if (validate_email(email, "Not a valid e-mail address!") == false) {
// 利用focus()将输入焦点移至对象上
email.focus();
return false;
}
}
}
</script>
<body>
<!-- onsubmit是一个验证表单功能,为true提交, -->
<form action="submitpage.htm" onsubmit="return validate_form(this);" method="post">
Email: <input type="text" name="email" size="30"> <input type="submit" value="Submit">
</form>
</body>
</html>
运行结果
2:结果
验证说明
下图展示了输入邮箱格式验证通过的情况。需要注意的是,该验证仅检查格式是否符合规范,并不验证邮箱地址在现实中是否真实存在。

总结
总结
结语
以上内容介绍了利用JavaScript进行电子邮箱地址格式验证的方法,希望能对读者有所帮助。如有任何疑问,欢迎留言,小编会及时回复。感谢大家对本站的支持!