前端利用正则表达式来注册或登录表单的验证示例代码
简介
在网页的注册或者登录页面中,进行表单验证是我们能否进入该网页的关键步骤。今天通过一个简单的示例,利用正则表达式来进行表单验证以及在用户提交时进行相应的错误提示。
1.HTML部分
在HTML部分中,将构建一个基本的注册表单,包含用户名、密码、确认密码、手机号和邮箱输入框。HTML表单使用了<form>标签,并将数据提交到服务器(这里只是一个示例URL,实际开发中应根据需求填写)。
<form action="http://httpbin.org/post" method="post">
<div class="row">
登录账号:<input type="text" name="username" placeholder="请输入3-16位之间的账号">
<div class="username-tips"></div>
</div>
<div class="row">
登录密码:<input type="password" name="password" placeholder="请输入6-16位之间的密码">
<div class="password-tips"></div>
</div>
<div class="row">
确认密码:<input type="password" name="password2" placeholder="请再次输入登录密码">
<div class="password2-tips"></div>
</div>
<div class="row">
手机号码:<input type="text" name="mobile" placeholder="请输入手机号码">
<div class="mobile-tips"></div>
</div>
<div class="row">
注册邮箱:<input type="email" name="email" placeholder="请输入邮箱地址">
<div class="email-tips"></div>
</div>
<input type="submit" value="注册">
</form>
1.
username(账号):用于输入用户名,要求长度在3到16个字符之间。
2.password(密码):用于输入密码,要求长度在6到16个字符之间。
3.password2(确认密码):再次输入密码以确认一致。
4.mobile(手机号码):要求输入有效的手机号码,符合中国大陆的手机号码格式。
5.
6.在每个输入框下方都有一个<div>元素,用于显示与该输入框相关的错误提示信息。类名如.username-tips、.password-tips等,用来标识对应的错误提示内容。
2.CSS部分
.row {
height: 42px;
border-bottom: 1px solid #aaa;
margin-bottom: 10px;
}
.username-tips, .password-tips, .password2-tips, .mobile-tips, .email-tips {
color: red;
font-size: 12px;
}
.row:为每个表单行设置了固定的高度,并给每行添加一个下边框。.username-tips等:设置了错误提示的文本颜色为红色,并设置字体大小为12px,确保提示信息清晰可见。
3.JavaScript部分
这部分是代码的核心,用JavaScript来对用户输入的数据进行验证。在提交表单前,我们会检查每个字段是否符合要求。如果某一项不符合要求,表单提交会被阻止,同时显示对应的错误提示。
验证逻辑:
1.验证用户名:长度要求在3到16个字符之间。
2.验证密码:长度要求在6到16个字符之间。
3.验证确认密码:确保密码和确认密码一致。
4.验证手机号:使用正则表达式检查手机号格式是否正确。
5.验证邮箱地址:使用正则表达式检查邮箱格式是否有效。
var username = document.querySelector('input[name="username"]');
var password = document.querySelector('input[name="password"]');
var password2 = document.querySelector('input[name="password2"]');
var mobile = document.querySelector('input[name="mobile"]');
var email = document.querySelector('input[name="email"]');
var submit = document.querySelector('input[type="submit"]');
username.onfocus = function() {
document.querySelector('.username-tips').innerHTML = "";
};
submit.onclick = function() {
let uv = username.value;
let pv = password.value;
let pv2 = password2.value;
let mv = mobile.value;
let ev = email.value;
// 校验账号
if (uv.length < 3 || uv.length > 16) {
document.querySelector('.username-tips').innerHTML = "请输入3-16位之间的账号!";
return false;
}
// 校验密码
if (pv.length < 6 || pv.length > 16) {
document.querySelector('.password-tips').innerHTML = "请输入6-16位之间的密码!";
return false;
}
// 校验确认密码
if (pv !== pv2) {
document.querySelector('.password2-tips').innerHTML = "登录密码与确认密码必须一致!";
return false;
}
// 验证手机号
if (!/^1[3-9]\d{9}$/.test(mv)) {
document.querySelector('.mobile-tips').innerHTML = "手机号码格式有误!";
return false;
}
// 验证邮箱格式
if (!/^\w+@\w+\.\w+$/.test(ev)) {
document.querySelector('.email-tips').innerHTML = "注册邮箱格式有误!";
return false;
}
}
1.我们首先定义了表单中的各个输入框和提交按钮的引用。
2.当用户点击输入框时,我们清空相应的错误提示。
3.提交表单时,使用onclick事件处理函数对用户输入的数据进行逐项验证:
用户名、密码、确认密码、手机号和邮箱都必须符合特定的规则。如果验证失败,错误提 示将会显示在相应的<div>中。
如果所有验证都通过,表单才会提交。
运行结果
校验账号错误

校验密码错误

校验手机号码错误

校验注册邮箱错误

提交成功

完整代码
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
.row{
height: 42px;
border-bottom: 1px solid #aaa;
margin-bottom: 10px;
}
.username-tips, .password-tips, .password2-tips, .mobile-tips, .email-tips{
color: red;
font-size: 12px;
}
</style>
</head>
<body>
<form action="http://httpbin.org/post" method="post">
<div class="row">
登录账号:<input type="text" name="username" placeholder="请输入3-16位之间的账号">
<div class="username-tips"></div>
</div>
<div class="row">
登录密码:<input type="password" name="password" placeholder="请输入6-16位之间的密码">
<div class="password-tips"></div>
</div>
<div class="row">
确认密码:<input type="password" name="password2" placeholder="请再次输入登录密码">
<div class="password2-tips"></div>
</div>
<div class="row">
手机号码:<input type="text" name="mobile" placeholder="请输入手机号码">
<div class="mobile-tips"></div>
</div>
<div class="row">
注册邮箱:<input type="email" name="email" placeholder="请输入邮箱地址">
<div class="email-tips"></div>
</div>
<input type="submit" value="注册">
</form>
<script>
// 在2种情况下,进行数据验证
// 用户输入完以后验证
var username = document.querySelector('input[name="username"]')
var password = document.querySelector('input[name="password"]')
var password2 = document.querySelector('input[name="password2"]')
var mobile = document.querySelector('input[name="mobile"]')
var email = document.querySelector('input[name="email"]')
var submit = document.querySelector('input[type="submit"]');
username.onfocus = function(){
// 当输入光标进入当前输入框会触发onfocus事件,去除错误提示
document.querySelector('.username-tips').innerHTML = "";
}
submit.onclick = function(){
let uv = username.value
let pv = password.value
let pv2 = password2.value
let mv = mobile.value
let ev = email.value
// 校验账号
if(uv.length<3 || uv.length>16){
document.querySelector('.username-tips').innerHTML = "请输入3-16位之间的账号!"
return false;
}
// 校验密码
if(pv.length<6 || pv.length > 16){
document.querySelector('.password-tips').innerHTML = "请输入6-16位之间的密码!"
return false;
}
// 校验确认密码
if(pv!=pv2){
document.querySelector('.password2-tips').innerHTML = "登录密码与确认密码必须一致!"
return false;
}
// 验证手机号
if(!/^1[3-9]\d{9}$/.test(mv)){
document.querySelector('.mobile-tips').innerHTML = "手机号码格式有误!"
return false;
}
// 验证邮箱格式
// 1@qq.com
// 123213@qq.com
if(!/^\w+@\w+\.\w+$/.test(ev)){
document.querySelector('.email-tips').innerHTML = "注册邮箱格式有误!"
return false;
}
}
</script>
</body>
</html>总结
到此这篇关于前端利用正则表达式来注册或登录表单的验证的文章就介绍到这了,更多相关前端正则注册登录表单的验证内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()
这篇文章主要介绍了JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()的相关资料,需要的朋友可以参考下2016-08-08
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
本文给大家介绍基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用,介绍页面内容常用到的数据分页处理,以及Bootstrap插件JSTree的使用,非常具有参考借鉴价值,感兴趣的朋友一起学习吧2016-05-05
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
这篇文章主要介绍了JS/HTML5游戏常用算法之碰撞检测 地图格子算法,结合实例形式详细分析了javascript碰撞检测算法的相关原理、实现技巧与操作注意事项,需要的朋友可以参考下2018-12-12
简介EasyUI datagrid editor combogrid搜索框的实现
这篇文章主要介绍了EasyUI datagrid editor combogrid搜索框的实现,涉及到EasyUI中combogrid的使用方法的相关知识,非常具有参考价值,需要的朋友可以参考下2016-04-04


最新评论