b站pink老师JavaScript的ES6面向对象课程中:正则表达式案例代码——表单验证

news2024/11/27 12:52:14

目标效果:

1.当输入的手机号,QQ号,昵称,短信验证码,登录密码,确认密码:如果符合标准,就提示正确的文字;如不符合标准,则提示不正确。

2.判断确认密码是否与登录密码相等,来看确认密码是否正确。

3.手机号正则表达式:/^1[3|4|5|7|8][0-9]{9}$/(11位

QQ号正则表达式:[1-9][0-9]{4,} (腾讯QQ号从10000开始)

昵称正则表达式:/^[\u4e00-\u9fa5]{2,8}$/2-8位的汉字

短信验证码正则表达式:/^\d{6}$/6位的数字

登录密码正则表达式:/^[a-zA-Z0-9_-]{6,16}$/(6-16位的数字,大小写字母,下划线和短横线)

e.g.1初始状态

e.g.2输入的手机号不符合标准

 e.g.3输入的手机号符合标准

 e.g.4所有内容符合标准

代码部分: 

1.reg.js部分(全是重点)

window.onload = function () {
    var regtel = /^1[3|4|5|7|8]\d{9}$/;//手机号的正则表达式 11位
    var regqq = /^[1-9]\d{4,}$/;//qq号的正则表达式 从10000开始
    var regnc = /^[\u4e00-\u9fa5]{2,8}$/;//昵称的正则表达式 2-8位的汉字
    var regmsg = /^\d{6}$/;//验证码的正则表达式 6位的数字
    var regpwd = /^[a-zA-Z0-9_-]{6,16}$/;//密码的正则表达式 6-16位的数字,大小写字母,下划线和短横线
    var tel = document.querySelector('#tel');
    var qq = document.querySelector('#qq');
    var nc = document.querySelector('#nc');
    var msg = document.querySelector('#msg');
    var pwd = document.querySelector('#pwd');
    var surepwd = document.querySelector('#surepwd');
    regexp(tel, regtel);//传递 手机号参数 和 手机号的正则表达式,调用函数regexp
    regexp(qq, regqq);//传递 qq号参数 和 qq号的正则表达式,调用函数regexp
    regexp(nc, regnc);//传递 昵称参数 和 昵称的正则表达式,调用函数regexp
    regexp(msg, regmsg);//传递 验证码参数 和 验证码的正则表达式,调用函数regexp
    regexp(pwd, regpwd);//传递 密码参数 和 密码的正则表达式,调用函数regexp
    function regexp(ele, reg) {//封装一个表单验证函数regexp,如果符合标准,就提示正确的文字;如不符合标准,则提示不正确
        //ele是传递过来的参数,reg是该参数对应的正则表达式
        ele.onblur = function () {
            if (reg.test(this.value)) {
                // console.log('正确的');
                this.nextElementSibling.className = 'success';
                this.nextElementSibling.innerHTML = '<i class="success_icon"></i> 恭喜您输入正确';
            } else {
                // console.log('不正确');
                this.nextElementSibling.className = 'error';
                this.nextElementSibling.innerHTML = '<i class="error_icon"></i> 格式不正确,请重新输入';
            }
        }
    }
    surepwd.onblur = function () {
        if (this.value == pwd.value) {
            this.nextElementSibling.className = 'success';
            this.nextElementSibling.innerHTML = '<i class="success_icon"></i> 恭喜您输入正确';
        } else {
            this.nextElementSibling.className = 'error';
            this.nextElementSibling.innerHTML = '<i class="error_icon"></i> 两次密码输入不一致';
        }
    }
}

2.register.html部分(辅助作用,用于查看结构)

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>注册页面</title>
    <!-- 初始化css -->
    <link rel="stylesheet" href="css/base.css">
    <!-- register css文件 -->
    <link rel="stylesheet" href="css/register.css">
    <script src="js/reg.js"></script>
</head>

<body>
    <div class="w">
        <!-- header -->
        <div class="header">
            <div class="logo">
                <a href="index.html">
                    <img src="img/logo.png" alt="">
                </a>
            </div>
        </div>
        <!-- registerarea -->
        <div class="registerarea">
            <h3>
                注册新用户
                <em>
                    我有账号,去<a href="login.html">登陆</a>
                </em>
            </h3>
            <div class="reg_form">

                <form action="demo.php">
                    <ul>
                        <li>
                            <label for="tel">手机号:</label>
                            <input type="text" class="inp" id="tel">
                            <span></span>
                        </li>
                        <li>
                            <label for="">QQ:</label>
                            <input type="text" class="inp" id="qq">
                            <span></span>
                        </li>
                        <li>
                            <label for="">昵称:</label>
                            <input type="text" class="inp" id="nc">
                            <span></span>
                        </li>
                        <li>
                            <label for="">短信验证码:</label>
                            <input type="text" class="inp" id="msg">
                            <span></span>
                        </li>
                        <li>
                            <label for="">登陆密码:</label>
                            <input type="text" class="inp" id="pwd">
                            <span></span>
                        </li>
                        <li class="safe">
                            安全程度
                            <em class="ruo">弱</em>
                            <em class="zhong">中</em>
                            <em class="qiang">强</em>
                        </li>

                        <li>
                            <label for="">确认密码:</label>
                            <input type="text" class="inp" id="surepwd">
                            <span></span>
                        </li>
                        <li class="agree">

                            <input type="checkbox">同意协议并注册
                            <a href="#">《知果果用户协议》</a>
                        </li>
                        <li>
                            <input type="submit" value="完成注册" class="over">
                        </li>
                    </ul>
                </form>

            </div>
        </div>
        <div class="footer">
            <p class="links">
                关于我们 | 联系我们 | 联系客服 | 商家入驻 | 营销中心 | 手机品优购 | 友情链接 | 销售联盟 | 品优购社区 | 品优购公益 | English Site | Contact U
            </p>

            <p class="copyright">
                地址:北京市昌平区建材城西路金燕龙办公楼一层 邮编:100096 电话:400-618-4000 传真:010-82935100 邮箱: zhanghj+itcast.cn <br>
                京ICP备08001421号京公网安备110108007702
            </p>
        </div>
    </div>
</body>

</html>

3.register.css部分(辅助作用)

.w {
    width: 1200px;
    margin: auto;
}

.header {
    height: 82px;
    border-bottom: 2px solid #b1191a;
}

.logo {
    padding-top: 15px;
}

.registerarea {
    height: 580px;
    border: 1px solid #ccc;
    margin-top: 20px;
}

.registerarea h3 {
    height: 40px;
    border-bottom: 1px solid #ccc;
    background-color: #ececec;
    padding: 0 10px;
    font-weight: 400;
    line-height: 40px;
    font-size: 18px;
}

.registerarea h3 em {
    float: right;
    font-size: 14px;
}

.registerarea a {
    color: #c81623;
}

.reg_form {
    width: 600px;
    height: 400px;
    margin: 40px auto 0;
}

.reg_form li {
    margin-bottom: 15px;
}

.reg_form label {
    display: inline-block;
    width: 100px;
    height: 36px;
    line-height: 36px;
    text-align: right;
}

.inp {
    width: 238px;
    height: 34px;
    border: 1px solid #ccc;
    margin-left: 10px;
}

.error {
    color: #df3033;
    margin-left: 10px;
}

.error_icon,
.success_icon {
    display: inline-block;
    width: 20px;
    height: 20px;
    background: url(../img/error.png) no-repeat;
    vertical-align: middle;
    margin-top: -2px;
}

.success {
    color: #40b83f;
    margin-left: 10px;
}

.success_icon {
    background-image: url(../img/success.png);
}

.safe {
    padding-left: 187px;
    color: #b2b2b2;
}

.safe em {
    padding: 0 12px;
    color: #fff;
}

.ruo {
    background-color: #de1111;
}

.zhong {
    background-color: #40b83f;
}

.qiang {
    background-color: #f79100;
}

.agree {
    padding-top: 20px;
    padding-left: 100px;
}

.agree input {
    vertical-align: middle;
    margin-right: 5px;
}

.agree a {
    color: #1ba1e6;
}

.over {
    width: 200px;
    height: 34px;
    background-color: #c81623;
    margin: 30px 0 0 130px;
    border: none;
    color: #fff;
    font-size: 14px;
}

.footer {
    height: 120px;
    text-align: center;
}

.links {
    margin-top: 20px;
    height: 30px;
}

.copyright {
    line-height: 20px;
}

4.base.css部分(辅助作用)

/*清除元素默认的内外边距  */
* {
    margin: 0;
    padding: 0
}
/*让所有斜体 不倾斜*/
em,
i {
    font-style: normal;
}
/*去掉列表前面的小点*/
li {
    list-style: none;
}
/*图片没有边框   去掉图片底侧的空白缝隙*/
img {
    border: 0;  /*ie6*/
    vertical-align: middle;
}
/*让button 按钮 变成小手*/
button {
    cursor: pointer;
}
/*取消链接的下划线*/
a {
    color: #666;
    text-decoration: none;
}

a:hover {
    color: #e33333;
}

button,
input {
    font-family: 'Microsoft YaHei', 'Heiti SC', tahoma, arial, 'Hiragino Sans GB', \\5B8B\4F53, sans-serif;
    /*取消轮廓线 蓝色的*/
    outline: none;
}

body {
    background-color: #fff;
    font: 12px/1.5 'Microsoft YaHei', 'Heiti SC', tahoma, arial, 'Hiragino Sans GB', \\5B8B\4F53, sans-serif;
    color: #666
}

.hide,
.none {
    display: none;
}
/*清除浮动*/
.clearfix:after {
    visibility: hidden;
    clear: both;
    display: block;
    content: ".";
    height: 0
}

.clearfix {
    *zoom: 1
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/27142.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

落实交通强国,鄂州临空区联手蘑菇车联打造新时代内陆开放高地

临空经济与智能网联、自动驾驶能擦出什么样的火花&#xff1f;今年7月&#xff0c;鄂州花湖机场投运&#xff0c;标志着这个湖北省“一号工程”正式蝶变为亚洲规模最大、自动化程度行业领先的航空货运枢纽。鄂州花湖机场项目也是湖北加快建设交通强国示范区、打造新时代“祖国立…

Spring Boot配置多个日志文件记录不同类日志示例

了解如何使用多个文件追加器在Spring 引导应用程序中创建多个日志文件。了解如何使用翻转策略、归档等配置所有文件追加器&#xff0c;wiihlog4j2和日志配置。 1. 带登录的多个日志文件 以下文件包含 5 个记录器。我们可以根据需要创建更多的记录器。logback.xml console– …

NeRF源码运行与学习(pytorch)

神经辐射场&#xff08;NeRF&#xff09;是一个简单的全连接网络&#xff08;权重约为5MB&#xff09;&#xff0c;经过训练&#xff0c;可以使用渲染损失再现单个场景的输入视图。网络直接从空间位置和观看方向&#xff08;5D输入&#xff09;映射到颜色和不透明度&#xff08…

翻译文本的软件有哪些?这几个翻译工具你可以试试看

文本翻译&#xff0c;是我们在生活中或工作中比较常见的一个需求。例如有时收到一份英文资料&#xff0c;没时间逐字翻译成中文&#xff0c;那就需要借助翻译工具来帮忙了&#xff1b;或者是有时需要将一些内容翻译成英文&#xff0c;而碰巧遇到句子不知道如何翻译&#xff0c;…

DDPM(Denoising Diffusion Probabilistic Models)扩散模型简述

引言 扩散模型最早是在2015年的Deep Unsupervised Learning using Nonequilibrium Thermodynamics文章中提出的&#xff0c;但当时扩散模型并不work&#xff0c;所以并没有被广泛应用。在2020年&#xff0c;Denoising Diffusion Probabilistic Models(简称为DDPM)的出现&#…

[附源码]java毕业设计校园闲置物品交易

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

MCE | 动物实验溶剂大讨论

在动物实验中&#xff0c;药物通常会以溶液 (Solution) 或混悬液 (Suspension) 的形式给药。我们需选择合适的溶剂&#xff0c;可以辅助超声加热措施&#xff0c;得到澄清的溶液或适合给药的混悬液。■ 人见人爱的生理盐水/PBS 对于水溶性很好的产品&#xff0c;用生理盐水 (Sa…

中学数学课程标准(教学大纲)的传承与变迁

目 录 摘 要 I Abstract II 第一章 绪论 1 1.1研究背景及意义 1 1.2研究现状 1 1.3研究内容 3 第二章 1990以来我国中学数学课程标准&#xff08;教学大纲&#xff09;改革回顾 4 2.1改革回顾 4 2.1.1 1990年数学教学改革的内容 4 2.1.2 2001年数学教学改革的内容 5 2.1.3 2011…

XSS(Cross-site Script,跨站脚本)漏洞笔记

起源 最早的 XSS 漏洞可追溯到 1999 年末&#xff0c;微软安全工程师发现一些网站遭到攻击&#xff0c;网站被插入了一些恶意脚本和图像标签。随后&#xff0c;微软对此类漏洞进行研究分析&#xff0c;并在 2000 年 1 月&#xff0c;正式使用“cross-site scripting”这个名称…

C语言-指针初阶(6)

目录 思维导图&#xff1a; 1. 指针是什么&#xff1f; 2. 指针和指针类型 2.1 指针-整数 2.2 指针的解引用 3. 野指针 3.1 野指针成因 3.2 如何规避野指针 4. 指针运算 4.1 指针-整数 4.2 指针-指针 4.3 指针的关系运算 5. 指针和数组 6. 二级指针 7. 指针数组…

50行Python代码实现自动下载小说,并打包exe直接

前言 室友喊着没有小说看&#xff0c;让我给他推荐几本&#xff0c;这能难倒我&#xff1f; 分分钟就用python给他把整个网站的小说都给下载下来了&#xff0c;不愧是我啊&#xff01; 话不多说&#xff0c;我们直接开整&#xff01; &#xff08;文末送读者福利&#xff09…

python之爬虫的学习

python爬虫入门-1为什么要学习爬虫浏览器背后的秘密常用网络请求URL解析HTTP常见响应状态码相关库及其简单使用相关引用综合栗子为什么要学习爬虫 现如今&#xff0c;浏览器可以更方便的进行网页交互以人们适合阅读的方式展示数据&#xff1b;但爬虫或者网页抓取对数据的收集和…

第5章 输入/输出(I/O)管理

5.1 I/O管理概述 5.1.1 I/O设备 I/O设备的分类&#xff08;按使用特性分类&#xff09;I/O设备的分类&#xff08;按传输速率分类&#xff09;I/O设备的分类&#xff08;按信息交换的单位分类&#xff09; 5.1.2 I/O控制方式 有4种&#xff1a; 1. 程序直接控制方式2. 中…

都是同样条件的mysql select语句,为什么读到的内容却不一样?

假设当前数据库里有下面这张表。 老规矩&#xff0c;以下内容还是默认发生在innodb引擎的可重复读隔离级别下。 大家可以看到&#xff0c;线程1&#xff0c;同样都是读 age > 3 的数据。第一次读到1条数据&#xff0c;这个是原始状态。这之后线程2将id2的age字段也改成了3。…

kubelet源码 删除pod(二)

kubelet源码 删除pod&#xff08;二&#xff09; 本文中含有k8s的一个bug&#xff0c;我也正在努力提交PR&#xff0c;不过会不会被merge就不清楚了。 kubernetes PR地址 pod_workers.go是主要处理pod变化的文件&#xff0c;在1.22版本后对这个文件进行了比较大的修改。把属…

[附源码]SSM计算机毕业设计基于SSM的酒店管理系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

QT 字符串操作常用接口函数

目录常见字符串处理函数空白字符串处理函数查询字符串数据字符串比较字符串的转换QT版本的STLQLinkedList和QVector的区别QT提供的STL命名风格的迭代器QMap和QHash经过该简单设置可以防止msvc环境下使用qdebug打印输出时出现中文乱码的问题。 #include "learn.h" #i…

长话短说:学习网络安全自学好还是报培训班?

无论你是大学生还是在职人员&#xff0c;想学网络安全时&#xff0c;都会面临两个选择&#xff0c;自学或者报班。报班通常太费钱&#xff0c;时间又不自由&#xff1b;自学又不知道如何下手&#xff0c;担心自己坚持不下来。怎么办&#xff1f; 我们先分析一下自学和培训班的…

【文本分类】《融合注意力和剪裁机制的通用文本分类模型》

阅读摘要&#xff1a;   针对实际场景中长短文本大量的情况&#xff0c;提出了双通道注意力机制与长文本裁剪机制来改进文本分类模型&#xff0c;最终提高了精度。 参考文献&#xff1a;   [1] 融合注意力和剪裁机制的通用文本分类模型 参考论文信息 论文名称&#xff1a;《…

第三版全球干旱指数和潜在蒸散数据发布

Robert J. Zomer &#xff1b;JianchuXu&#xff1b;AntonioTrabucco(Kunming Institute of Botany, Chinese Academy of Science&#xff1b;Euro-Mediterranean Center on Climate Change, IAFES Division, Sassari, Italy) 摘要 潜在蒸散(Potential evapotranspiration&…