首先有三个文本框,和一个提交按钮,第一个输入账号,第二个密码,第三个手机号
我们的需求:判断3个文本框是否全部输入正确,当我们点击提交时,如果有一个输入错误则不能提交,全部输入正确则提交成功;


下面直接上代码
表单代码

 <form action="http://www.taobao.com"><input type="text"><span></span><br><input type="text"><span></span><br><input type="text"><span></span><br><input type="submit"></form>

JS代码

<script>var ids;//获取表单,给表单添加输入事件和提交事件var form = document.querySelector("form");form.addEventListener("submit", formHandler);form.addEventListener("input", formHandler);//获取所有的input元素列表并转换为数组var list = Array.from(document.querySelectorAll("input"));//删除数组最后一个元素,也就是删除submit 提交,数组保留3个文本框list.pop();// 创建一个数组,里面给入3个false,意味着初始没输入时默认错误var arr = [];for (var i = 0; i < list.length; i++) {arr.push(false);}function formHandler(e) {//输入时,查找点击元素在数组中的下标,并且判断输入内容是否符合我们设置的标准if (e.type === "input") {//节流if (ids) return;ids = setTimeout(function () {clearTimeout(ids);ids = 0;var index = list.indexOf(e.target);// 将返回的布尔值赋值给boolvar bool = getVerify(index, e.target.value);if (bool) {// bool值为true时,输入正确时,在span里面显示文本内容设置颜色e.target.nextElementSibling.textContent = "输入正确";e.target.nextElementSibling.style.color = "green";} else {// bool值为false时,输入错误,在span里面显示文本内容设置颜色e.target.nextElementSibling.textContent = "输入错误";e.target.nextElementSibling.style.color = "red";}console.log(arr, index)// 将返回的bool值添加至数组对应的下标,输入正确返回true错误返回falsearr[index] = bool;}, 500)} // 当提交时,并且在数组里查找不到false,提交成功,否则不能提交else if (e.type === "submit" && arr.indexOf(false) === -1) {} else {e.preventDefault();console.log("请输入正确后提交");}}function getVerify(index, value) {//判断点击元素的下标,这里return返回的都是一个布尔值switch (index) {// 下标为0时,第一个文本框,我们认为是账户,在输入的值中查找是否符合正则(8-16位数字,字母下划线组合)case 0:return /^\w{8,16}$/.test(value);//下标为1时,第二个文本框,我们认为是密码case 1:return /^(?=\D+\d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]{8,16}$/.test(value);// 下标为2时,第三个文本框,我们认为是电话,简单写的正则,只限定了1开头后面跟10位数字case 2:return /^1\d{10}$/.test(value);}}
</script>

JS正则表达式实现简单的表单验证(账号,密码,手机号)相关推荐

  1. angularjs学习第四天笔记(第一篇:简单的表单验证)

    您好,我是一名后端开发工程师,由于工作需要,现在系统的从0开始学习前端js框架之angular,每天把学习的一些心得分享出来,如果有什么说的不对的地方,请多多指正,多多包涵我这个前端菜鸟,欢迎大家的点 ...

  2. jQuery之简单的表单验证

    jQuery之简单的表单验证 html部分: <body><form method="post" action=""><div c ...

  3. 用jQuery写的最简单的表单验证

    近几天完成了关于我们项目的最简单的表单验证,是用jQuery写的,由于之前也一直没学过jQuery,所以自己也是一直处于边摸索边学习的阶段,经过这一段时间的学习,通过查资料啥的,也发现了学习jQuer ...

  4. php表单确认密码,jQuery表单验证之密码确认实例详解

    本文主要为大家详细介绍了jQuery表单验证之密码确认的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家. 众所周知,在修改密码时会需要两次输入密码.这时如何确保两个密码框 ...

  5. js使用策略模式实现表单验证

    使用策略模式实现表单验证 1.什么是策略模式 策略模式说起来很高大上,其实现实生活中很常见.比如,你要从老家去北京故宫游玩,可选的出行方式有坐火车.开车自驾.坐飞机等几种方式, 至于选择哪种出现方式要 ...

  6. js表单验证确认密码输入一致

    <form action="../01-自动轮播图片/图片自动轮播.html" onsubmit="return checkForm()" >用户名 ...

  7. 密码与确认密码自动验证html,html表单验证确认密码

    编写HTML注册表单,,javascript表单验证 编写HTML注册表单,,需要字段:用户名,密码,确认密码,邮件,确认邮件,性汗....阁下语气可以舒缓一些吗? 我们抽出自己的时间来帮助别人,不是 ...

  8. layui前端表单验证(身份证,手机号 图形验证码等)

    文章目录 前言 一.layui前端验证 二.使用步骤 1.以下介绍几个常用的前端验证 2.thinkphp后台验证 3.效果展示 前言 layui前端框架是一款比较流行的前端框架,多模块集成的UI框架 ...

  9. Vue简单的表单验证

    前端验证必不可少~ 输入框验证 vue文件部分: <form :model="form" :rules="rules" ref="form&qu ...

最新文章

  1. GitHub 13.1k | 所有的编程知识,都在这100 张思维导图里了
  2. 快速提升网站SEO优化排名技巧有哪些?
  3. 关于性能测试几个名词概念的说明
  4. 学习笔记:MySQL字符串类型
  5. linux镜像文件_深度UI + Ubuntu系统,堪称最强最美Linux发行版!你敢升级吗?
  6. Wcf使用Net.Tcp做回调操作
  7. mysql preparedstatement_MySQL的简单操作方法:PreparedStatement
  8. 【期末划重点】数据库速成
  9. 皮江法 - 中国迷你直发 - 头发卷发器制造商
  10. 简单使用萤石云,实时直播,监控回放
  11. 为什么大数据平台要回归SQL
  12. android飞行棋小程序,快来飞行棋小程序-微信快来飞行棋小程序小游戏-游戏宝手游网...
  13. 维视智造斩获2022年度光能杯最具影响力“智造”企业奖
  14. python输入三个值输出最大值_python输入十个数如何输出最大值
  15. QQ来信息突然没声音了
  16. Numpy之reshape(1,-1)含义
  17. buuctf 派大星的烦恼 详解
  18. 小红书竞品分析_跨境电商APP竞品分析:小红书、网易考拉和达令
  19. 关于STM32驱动LCD显示屏,程序下载后白屏、乱码需要上电复位才能恢复正常问题的解决办法
  20. DevSecOps | 极狐GitLab 动态应用程序安全测试(DAST)使用指南

热门文章

  1. “软件工程”学习笔记、复习资料
  2. python练习实例——字母图形
  3. Android常用第三方支付
  4. 无法打开编译的html,解决VS在编译的时候无法打开...obj文件的问题
  5. WSTMART电商开源版安装教程-徐新帅-专题视频课程
  6. 计算机组成原理偶校验编码设计,计算机组成原理校验码生成电路的设计.doc
  7. 手机QQ与Win8:一蠢再蠢的改版与回炉
  8. java int 比较大小_3个int整数比较大小?
  9. 提高班—I Belonged To You
  10. 【阿里云镜像】使用阿里云Docker CE 镜像安装Docker