首页 > 其他分享 >JS——webAPIs(6)

JS——webAPIs(6)

时间:2024-04-06 16:34:34浏览次数:24  
标签:function span webAPIs innerHTML JS const document reg

一、知识点

1.正则表达式的使用

    //正则表达式:用于匹配字符串中字符组合的模式
    const str = '学习前端'
    //定义规则
    const reg = /前端/
    //进行查找-两个方法
    //用于判断是否有符合规则的字符串,返回布尔值
    console.log(reg.test(str));
    //用于检索符合规则的字符串,返回数组,否则为null
    console.log(reg.exec(str));

2.元字符-边界符

3.元字符-量词

 4.元字符-字符类

 

 

5.修饰符

    const re = str.replace(/前端/ig,'java')
    console.log(re);

二、综合案例

1.验证用户名是否正确

    <script>
        const reg = /^[a-zA-Z0-9-_]{6,16}$/
        const input = document.querySelector('input')
        const span = input.nextElementSibling
        input.addEventListener('blur',function(){
            if (reg.test(this.value)){
                span.innerHTML = '输入正确'
                span.className = 'right'//覆盖类
            }
            else {
                span.innerHTML = '请输入16位的英文数字下划线'
                span.className = 'error'
            }
        })
    </script>

2. 过滤敏感词

  <script>
    const tx = document.querySelector('textarea')
    const btn = document.querySelector('button')
    const div = document.querySelector('div')
    btn.addEventListener('click',function(){
      div.innerHTML = tx.value.replace(/敏感词/g,'**')
      tx.value = ''
    })
  </script>

3. 注册页面

  <script>
    // 立即执行函数
    (function(){
      // 发送短信验证码模块
      const code = document.querySelector('.code')
      // 点击事件
      code.addEventListener('click',function(){
        // 倒计时5s,点击完毕立马触发
        let i = 5
        code.innerHTML = `0${i}秒后重新获取`
        let timeId = setInterval(function(){
          i--
          code.innerHTML = `0${i}秒后重新获取`
          if (i === 0){
            clearInterval(timeId)
            // 重新获取
            code.innerHTML = '重新获取'
          }
        }, 1000);
      })
    })()

    // 用户名验证模块
    // 获取元素
    const username = document.querySelector('[name=username]')
    // 使用change事件:值发生变化就会触发
    username.addEventListener('change',verifyName)
    // 封装函数
    function verifyName(){
      const span = username.nextElementSibling
      // 定义规则
      const reg = /^[a-zA-Z0-9-_]{6,10}$/
      // 验证
      if (!reg.test(username.value)){
        span.innerHTML = '输入不合法,请输入6-10位'
        // 中断程序
        return false
      }
      // 合法,清空span
      span.innerHTML = ''
      return true
    }
    
    // 手机号验证模块
    const phone = document.querySelector('[name=phone]')
    phone.addEventListener('change',verifyPhone)
    function verifyPhone(){
      const span = phone.nextElementSibling
      const reg = /^1(3\d|4[5-9]|5[0-35-9]|6[567]|7[0-8]|8\d|9[0-35-9])\d{8}$/
      if (!reg.test(phone.value)){
        span.innerHTML = '输入不合法,请输入正确的11位手机号码'
        return false
      }
      span.innerHTML = ''
      return true
    }

    // 验证码验证模块
    const code = document.querySelector('[name=code]')
    code.addEventListener('change',verifyCode)
    function verifyCode(){
      const span = code.nextElementSibling
      const reg = /^\d{6}$/
      if (!reg.test(code.value)){
        span.innerHTML = '输入不合法,6位数字'
        return false
      }
      span.innerHTML = ''
      return true
    }

    // 密码验证模块
    const password = document.querySelector('[name=password]')
    password.addEventListener('change',verifyPassword)
    function verifyPassword(){
      const span = password.nextElementSibling
      const reg = /^[a-zA-Z0-9-_]{6,20}$/
      if (!reg.test(password.value)){
        span.innerHTML = '输入不合法,6~20位数字字母符号组成'
        return false
      }
      span.innerHTML = ''
      return true
    }

    // 密码再次验证模块
    const confirm = document.querySelector('[name=confirm]')
    confirm.addEventListener('change',verifyConfirm)
    function verifyConfirm(){
      const span = confirm.nextElementSibling
      // 判断
      if (confirm.value !== password.value) {
        span.innerHTML = '两次密码输入不一致'
        return false
      }
      span.innerHTML = ''
      return true
    }

    // 点击已阅读并同意模块
    const queren = document.querySelector('.icon-queren')
    queren.addEventListener('click',function(){
      //切换类,原来有就删掉,原来没有就添加
      this.classList.toggle('icon-queren2')
    })

    // 提交模块
    const form = document.querySelector('form')
    form.addEventListener('submit',function(e){
      // 判断是否勾选了已同意
      if (!queren.classList.contains('icon-queren2')){
        alert('请勾选同意协议')
        //阻止提交
        e.preventDefault()
      }
      // 依次判断上面的每个框框是否通过验证
      // 只要有一个没通过就提交失败(阻止提交)
      if (!verifyName()) e.preventDefault()
      if (!verifyPhone()) e.preventDefault()
      if (!verifyCode()) e.preventDefault()
      if (!verifyPassword()) e.preventDefault()
      if (!verifyConfirm()) e.preventDefault()
    })
  </script>

标签:function,span,webAPIs,innerHTML,JS,const,document,reg
From: https://blog.csdn.net/Axuangogo/article/details/137427867

相关文章

  • 蓝旭工作室第三周预习:JS入门
    一、JavaScript概述    JavaScript是一种运行于JavaScript解释器/引擎中的解释型脚本语言。    解释型:运行之前不需要编译;运行之前不会检查错误,直到碰到错误为止。    编译型:对源码进行编译,还能检查语法错误。如C、C++。运行环境    1、......
  • Vue.js自定义指令
    除了默认设置的核心指令(v-model和v-show),Vue也允许注册自定义指令。下面我们注册一个全局指令v-focus,该指令的功能是在页面加载时,元素获得焦点:<body><divclass="app"><span>页面载入时,input元素自动获取焦点:</span><inputv-focust......
  • 比nestjs更优雅的ts控制反转策略-依赖查找
    一、Cabloy5.0内测预告Cabloy5.0采用TS对整个全栈框架进行了脱胎换骨般的大重构,并且提供了更加优雅的ts控制反转策略,让我们的业务开发更加快捷顺畅1.新旧技术栈对比:后端前端旧版js、egg2.0、mysqljs、vue2、framework7新版ts、egg3.0、多数据库兼容(支持mysql......
  • 华为OD机试 - 猴子爬山(Java & JS & Python & C & C++)
    须知哈喽,本题库完全免费,收费是为了防止被爬,大家订阅专栏后可以私信联系退款。感谢支持文章目录须知题目描述输入描述输出描述用例解题思路:Java代码:JS代码:Python代码:C代码:C++代码:题目描述一天一只顽猴想去从山脚爬到山顶,途中经过一个有个N个台......
  • 华为OD机试 - 火星文计算(Java & JS & Python & C & C++)
    须知哈喽,本题库完全免费,收费是为了防止被爬,大家订阅专栏后可以私信联系退款。感谢支持文章目录须知题目描述输入描述输出描述用例解题思路:Java代码:JS代码:Python代码:C代码:C++代码:题目描述已知火星人使用的运算符为#、$,其与地球人的等价公式如下......
  • 【华为OD机试真题】211、最优资源分配、芯片资源占用 | 机试真题+思路参考+代码分析(C
    文章目录一、题目......
  • JS的数学对象和日期对象
    一、数学对象 Math数学对象指的是在数学中研究和描述的各种概念、结构、对象或实体。(1)显示数学小数Π的输出 Math.PIMath.PI3.141592653589793(2)如何使数学对象四舍五入 Math.round//四舍五入console.log(Math.round(21.9));在控制台显示22;(3)向下取整 ......
  • 第05章 Servlet和JSP应用
    Servlet与JSP很相似,但也有一些区别,我们重新说明一下:1.Servlet是一个Java类文件,JSP是一个混编Java的HTML的文件。2.Servlet使用方法来处理请求,JSP则使用内置对象来处理请求。3.Servlet需要编译才能运行,而JSP由JSPContainer管理,不需要编译。4.Servlet通过配置url访问,JSP......
  • 【攻防技术技术】-- js+base64
    全文用时:10min在JavaScript中,btoa和atob是两个用于Base64编码和解码的函数。下面是对这两个函数以及Base64的解释和代码示例:btoa函数:btoa(表示base64encode)将字符串转换为Base64编码的数据。它接受一个ASCII字符串参数,并返回经过Base64编码的字符串。b表示"b......
  • 【攻防技术系列+逆向篇】--WebJs①
    WebJsREVERSE全文用时:15min爬虫逆向入门首先碰到大概率就是WebJs逆向,之后应该才会碰到安卓逆向,所以就先从WebJs说起能看这篇的,相信都清楚技术分前端后端,而爬虫所谓的逆向就是对前端搞一些事情。毕竟后端是勘知不到的(其实也不是不能,部分不完善安全的后端代码接口或者数据是通过......