javascript使用正则表达式实现注册登入校验


Posted in Javascript onSeptember 23, 2020

本文实例为大家分享了用正则表达式的方式实现注册登入的校验,供大家参考,具体内容如下

表单验证:

1、用户名:6?18位数字,字母,下划线_,文本域获取焦点和失去焦点出现提示文字。
2、登入密码:请输入6?20位数字,字母,任意字符,文本域获取焦点和失去焦点出现提示文字。(效果同上)
3、确认密码:内容与登入密码必须一致。
4、姓名:2-5位中文字。
5、身份证号:开头为1234568,中间16位为数字,结尾为数字或Xx。
6、邮箱:常规验证如下
7、手机号:为1开头是11位数字
8、提交是验证为一项是否填写正确,并弹框提示。
确认已阅读选项是否选中,并弹框提示。

页面效果:

1、提交是验证为一项是否填写正确,并弹框提示。
2、确认已阅读选项是否选中,并弹框提示。

javascript使用正则表达式实现注册登入校验

源代码:html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>用户登入界面</title>
 <link rel="stylesheet" type="text/css" href="demo.css" >
 <script type="text/javascript" src="demo.js"></script>
</head>
<body>
 <form id="forms" method="post" action="#">
 <!-- 头部 -->
 <header>--账户信息--</header>
 <!-- 内容 -->
 <section>
 <div>
 <label>用户名:</label>
 <input type="text" id="userName" name="userName" placeholder="用户设置成功后不可修改" />
 <span></span>
 <p></p>
 </div>
 <div>
 <label>登陆密码:</label>
 <input type="password" id="password" placeholder="6-20位字母,数字或符号"/>
 <span></span>
 <p></p>
 </div>
 <div>
 <label>确认密码:</label>
 <input type="password" id="passwordTwos" placeholder="请再次输入密码"/>
 <span></span>
 <p></p>
 </div>
 <div>
 <label>姓名:</label>
 <input type="text" id="theName" placeholder="请输入姓名,中文且最多五位" />
 <span></span>
 <p></p>
 </div>
 <div>
 <label>身份证号:</label>
 <input type="text" id="identity" placeholder="请输入身份证号" />
 <span></span>
 <p></p>
 </div>
 <div>
 <label>邮箱:</label>
 <input type="email" id="mailbox" placeholder="请输入正确邮箱格式" />
 <span></span>
 <p></p>
 </div>
 <div>
 <label>手机号码:</label>
 <input type="text" id="phone" placeholder="请输入手机号码" />
 <span></span>
 <p></p>
 </div>
 </section>
 <!-- 结尾 -->
 <footer>
 <hr/>
 <input id="choose" type="checkbox"/>
 <label for="choose">我已阅读并同意遵守规定</label>
 <input class="btn" type="submit" value="确认提交"/>
 </footer>
 </form>
</body>
</html>

css

*{
 margin: 0;
 padding: 0;
}
/*内外边距*/
body{
 background-color: #f2f2f2;
}
/*背景颜色*/
form{
 width: 1200px;
 margin: 50px auto;
 border-radius: 10px;
 background-color: #fff;
 box-shadow: 0px 0px 5px 5px #ccc;
}
/*宽,外边距;削圆;背景颜色;盒子阴影*/
header{
 width: 1200px;
 height: 50px;
 background-color: #7B68EE;
 border-radius: 10px 10px 0 0;
 color: #fff;
 font-size: 20px;
 line-height: 50px;
 text-align: center;
 font-weight: bold;
 letter-spacing: 10px;
}
/*宽,高,背景颜色,削圆,字体颜色,大小;行高;文本居中,加粗,字符间距*/
div{
 height: 120px;
 width: 1200px;
 margin-left: 50px;
 position: relative;
}
/*高,宽,左边距,相对定位*/
div>label{
 font-weight: bold;
 font-size: 18px;
 position: absolute;
 top: 50px;
}
/*加粗,字体大小,绝对定位,上*/
div>label::before{
 content: '* ';
 color: #00f;
}
/*在前面添加文本,字体颜色*/
div>input{
 width: 595px;
 height: 40px;
 position: absolute;
 right: 420px;
 top: 40px;
 border-radius: 5px;
 border: 1px solid #ccc;
 padding-left: 5px;
}
/*宽;高;绝对定位;右;上;削圆;边框;内边距*/
div>input:focus{
 outline: none;
 box-shadow: 0px 0px 8px 3px #7B68EE;
 transition-duration: 0.5s;
}
/*清除激活后的边框;盒子阴影;过度事件0.5s;*/
div>p{
 width: 60%;
 height: 30px;
 border-bottom: .5px solid #7B68EE;
 line-height: 30px;
 padding-left: 15px;
 position: absolute;
 font-size: 14px;
 top: 86px;
}
/*宽;高;下边框;行高;内边距;绝对定位,上;字体大小*/
div>span{
 position: absolute;
 left: 790px;
 line-height: 120px;
}
/*绝对定位,左,行高*/
footer{
 margin-top: 20px;
 height: 50px;
 text-align: center;
 line-height: 50px;
}
/*上边距;高;文本居中;行高*/
footer>label{
 margin: 0 10px;
 cursor:pointer;
}
/*外边距;小手*/
footer>.btn{
 width: 120px;
 height: 30px;
 background-color: #6495ED; 
 border-radius: 5px;
 border: none;
 color: #fff;
 font-size: 14px;
 cursor:pointer;
}
/*宽;高;背景颜色;削圆;边框;字体颜色;大小;小手*/

js

window.onload = function(){

 var btn = document.getElementById('btn');//提交按钮
 var p = document.getElementsByTagName('p');//文字提示标签数组
 var span = document.getElementsByTagName('span');//文字提示标签数组
 var forms = document.getElementById('forms');//表单
 var choose = document.getElementById('choose');//选择框
 var userName = document.getElementById('userName');//用户名
 var password = document.getElementById('password');//密码
 var passwordTwos = document.getElementById('passwordTwos');//确认密码
 var theName = document.getElementById('theName');//姓名
 var identity = document.getElementById('identity');//身份证号
 var mailbox = document.getElementById('mailbox');//邮箱
 var phone = document.getElementById('phone');//电话号码

 //正则表达式
 var reg1 = /^[\w]{6,18}$/,//用户名 6--18位数字,字母,下划线_
 reg2 = /^[\W\da-zA-Z_]{6,20}$/,//密码 6--20位数字,字母,任意字符
 reg3 = /^[\u4e00-\u9fa5]{2,5}$/,//姓名 2-5为的汉子
 reg4 = /^[1234568][\d]{16}[\dxX]$/,
 //身份证号 第一个数字1234568,中间任意数字16位,结尾任意数字或者xX;
 reg5 = /^[a-z1-9](?:\w|\-)+@[a-z\d]+\.[a-z]{2,4}$/i,
 //邮箱 以字母或者数字1-9开头+(任意个数字字母下划线\-)+@+(任意字母数字)+.+(2-4个字母)
 reg6 = /^[1][\d]{10}$/;//手机号 首个数字为1,后面10为任意数字

 //校验
 var n1 = false,
 n2 = false,
 n3 = false,
 n4 = false,
 n5 = false,
 n6 = false,
 n7 = false;

 //用户名获得焦点时
 userName.onfocus = function(){
 span[0].innerHTML = '请输入6--18位数字,字母,下划线_';
 span[0].style.color = 'green';
 }
 //用户名离开焦点时
 userName.onblur = function(){
 if(this.value == ''){
 span[0].innerHTML = '用户名不能为空!';
 span[0].style.color = 'red';
 } else if(!reg1.test(this.value)){
 span[0].innerHTML = '请输入6--18位数字,字母,下划线_';
 span[0].style.color = 'red';
 } else {
 span[0].innerHTML = '格式正确!';
 span[0].style.color = 'green';
 return n1 = true;
 }
 }

 //密码获得焦点时
 password.onfocus = function(){
 span[1].innerHTML = '请输入6--20位数字,字母,任意字符';
 span[1].style.color = 'green';
 }
 //密码离开焦点时
 password.onblur = function(){
 if(this.value == ''){
 span[1].innerHTML = '密码不能为空!';
 span[1].style.color = 'red';
 } else if(!reg2.test(this.value)){
 span[1].innerHTML = '请输入6--20位数字,字母,任意字符';
 span[1].style.color = 'red';
 } else {
 span[1].innerHTML = '格式正确!';
 span[1].style.color = 'green';
 return n2 = true;
 }
 }

 //确认密码获得焦点时
 passwordTwos.onfocus = function(){
 span[2].innerHTML = '请确认两次密码一致';
 span[2].style.color = 'green';
 }
 //确认密码离开焦点时
 passwordTwos.onblur = function(){
 if(this.value == ''){
 span[2].innerHTML = '确认密码不能为空!';
 span[2].style.color = 'red';
 } else if(this.value != password.value){
 span[2].innerHTML = '两次密码不相同';
 span[2].style.color = 'red';
 } else {
 span[2].innerHTML = '确认密码正确!';
 span[2].style.color = 'green';
 return n3 = true;
 }
 }

 //姓名获得焦点时
 theName.onfocus = function(){
 span[3].innerHTML = '请输入中文姓名';
 span[3].style.color = 'green';
 }
 //姓名离开焦点时
 theName.onblur = function(){
 if(this.value == ''){
 span[3].innerHTML = '姓名不能为空';
 span[3].style.color = 'red';
 } else if(!reg3.test(this.value)){
 span[3].innerHTML = '请输入正确的中文姓名';
 span[3].style.color = 'red';
 } else {
 span[3].innerHTML = '姓名正确!';
 span[3].style.color = 'green';
 return n4 = true;
 }
 }

 //身份证号获得焦点时
 identity.onfocus = function(){
 span[4].innerHTML = '请输入您的身份证号';
 span[4].style.color = 'green';
 }
 //身份证号离开焦点时
 identity.onblur = function(){
 if(this.value == ''){
 span[4].innerHTML = '身份证号不能为空';
 span[4].style.color = 'red';
 } else if(!reg4.test(this.value)){
 span[4].innerHTML = '身份证号格式不对';
 span[4].style.color = 'red';
 } else {
 span[4].innerHTML = '身份证正确!';
 span[4].style.color = 'green';
 return n5 = true;
 }
 }

 //邮箱获得焦点时
 mailbox.onfocus = function(){
 span[5].innerHTML = '请输入您的邮箱';
 span[5].style.color = 'green';
 }
 //邮箱离开焦点时
 mailbox.onblur = function(){
 if(this.value == ''){
 span[5].innerHTML = '邮箱不能为空';
 span[5].style.color = 'red';
 } else if(!reg5.test(this.value)){
 span[5].innerHTML = '邮箱格式不对';
 span[5].style.color = 'red';
 } else {
 span[5].innerHTML = '邮箱正确!';
 span[5].style.color = 'green';
 return n6 = true;
 }
 }


 //手机号获得焦点时
 phone.onfocus = function(){
 span[6].innerHTML = '请输入您的手机号';
 span[6].style.color = 'green';
 }
 //手机号离开焦点时
 phone.onblur = function(){
 if(this.value == ''){
 span[6].innerHTML = '手机号不能为空';
 span[6].style.color = 'red';
 } else if(!reg6.test(this.value)){
 span[6].innerHTML = '手机号格式不对';
 span[6].style.color = 'red'; 
 } else {
 span[6].innerHTML = '手机号正确!';
 span[6].style.color = 'green';
 return n7 = true;
 }
 }

 //提交按钮
 forms.onsubmit = function(){
 //正则表达式判断
 // var regs = !reg1.test(userName.value)||!reg2.test(password.value)||password.value != passwordTwos.value||!reg3.test(theName.value)||!reg4.test(identity.value)||!reg5.test(mailbox.value)||!reg6.test(phone.value);
 //变量判断
 var regs = n1==false||n2==false||n3==false||n4==false||n5==false||n6==false||n7==false;
 console.log(regs);
 if(!regs == false){
 alert('您 填 写 的 信 息 有 误 !');
 return false;
 } else if(choose.checked == false){
 alert('请 先 点 击 确 认 已 阅 读 按 钮 !');
 return false;
 } else {
 alert('登 记 成 功 !');
 window.open("http://www.baidu.com");
 return true;
 }
 }
 

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
如何快速的呈现我们的网页的技巧整理
Jul 01 Javascript
javascript jQuery插件练习
Dec 24 Javascript
javascript多行字符串的简单实现方式
May 04 Javascript
深入剖析JavaScript:Object类型
May 10 Javascript
JS焦点图,JS 多个页面放多个焦点图的实例
Dec 08 Javascript
javascript实现复选框全选或反选
Feb 04 Javascript
微信小程序顶部导航栏滑动tab效果
Jan 28 Javascript
JavaScript实现PC端横向轮播图
Feb 07 Javascript
Vue-cli3多页面配置详解
Mar 22 Javascript
Vue如何基于vue-i18n实现多国语言兼容
Jul 17 Javascript
JS sort排序详细使用方法示例解析
Sep 27 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
Oct 18 Javascript
javascript实现点击按钮切换轮播图功能
Sep 23 #Javascript
Vue3为什么这么快
Sep 23 #Javascript
Angular短信模板校验代码
Sep 23 #Javascript
JavaScript实现单点登录的示例
Sep 23 #Javascript
Vue+Java+Base64实现条码解析的示例
Sep 23 #Javascript
通过实例解析jQ Ajax操作相关原理
Sep 23 #Javascript
js实现三角形粒子运动
Sep 22 #Javascript
You might like
PHP入门速成教程
2007/03/19 PHP
php读取mssql的ntext字段返回值为空的解决方法
2014/12/30 PHP
php获得刚插入数据的id 的几种方法总结
2018/05/31 PHP
ModelDialog JavaScript模态对话框类代码
2011/04/17 Javascript
Javascript:为input设置readOnly属性(示例讲解)
2013/12/25 Javascript
jquery判断元素是否隐藏的多种方法
2014/05/06 Javascript
jQuery异步加载数据并添加事件示例
2014/08/24 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
Spring mvc 接收json对象
2015/12/10 Javascript
很全面的JavaScript常用功能汇总集合
2016/01/22 Javascript
JS关闭窗口时产生的事件及用法示例
2016/08/20 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
2017/04/12 Javascript
Vue的路由动态重定向和导航守卫实例
2018/03/17 Javascript
angularjs1.5 组件内用函数向外传值的实例
2018/09/30 Javascript
新手快速入门JavaScript装饰者模式与AOP
2019/06/24 Javascript
python导入时小括号大作用
2017/01/10 Python
Python基于matplotlib实现绘制三维图形功能示例
2018/01/18 Python
简单谈谈python中的lambda表达式
2018/01/19 Python
python如何在列表、字典中筛选数据
2018/03/19 Python
Pandas实现数据类型转换的一些小技巧汇总
2018/05/07 Python
tensorflow实现逻辑回归模型
2018/09/08 Python
vscode+PyQt5安装详解步骤
2020/08/12 Python
关于css兼容性问题及一些常见问题汇总
2016/05/03 HTML / CSS
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
德国体育用品网上商店:SC24.com
2016/08/01 全球购物
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
全球销量第一生发产品:Viviscal
2017/12/21 全球购物
吉列剃须刀美国官网:Gillette美国
2018/07/13 全球购物
C语言笔试题
2014/09/04 面试题
财经学院自荐信范文
2014/02/02 职场文书
1000字打架检讨书
2014/11/03 职场文书
我们的节日元宵节活动总结
2015/02/06 职场文书
大学毕业论文致谢词
2015/05/14 职场文书
小学运动会加油稿
2015/07/22 职场文书
python区块链实现简版工作量证明
2022/05/25 Python
Hive导入csv文件示例
2022/06/25 数据库