原生js实现验证码功能

yizhihongxing

实现验证码功能是网站注册、登录等操作中常见的一项安全措施。本文将介绍如何使用原生JS实现验证码功能,包括以下几个步骤:

  1. 生成随机验证码。
  2. 将随机验证码渲染到页面上。
  3. 监听用户输入的验证码,进行验证。
  4. 刷新验证码。

生成随机验证码

要实现验证码功能,首先需要生成一个随机的验证码字符串。可以使用Math.random()和String.fromCharCode()方法,结合循环语句来生成一个包含大小写字母和数字的随机字符串,例如:

function generateCode(){
  var code = '';
  for(var i=0; i<4; i++){
    var num = Math.floor(Math.random() * 62);
    if(num < 10){
      code += num; //数字
    }else if(num < 36){
      code += String.fromCharCode(num + 55); //大写字母
    }else{
      code += String.fromCharCode(num + 61); //小写字母 
    }
  }
  return code;
}

这段代码中使用了循环语句并结合Math.random()方法来生成一个0到61之间的随机整数,根据数字大小指定字符类型,从而生成随机字符串。其中数字对应0-9,大写字母对应A-Z,小写字母对应a-z。

将随机验证码渲染到页面上

有了随机验证码字符串之后,就需要将其渲染到页面上。可以使用innerHTML属性来修改HTML元素的内容,例如:

<!-- 验证码显示区域 -->
<div id="code"></div>
<!-- 刷新验证码按钮 -->
<button onclick="refreshCode()">刷新验证码</button>

<script>
window.onload = function(){
  var code = generateCode();
  document.getElementById('code').innerHTML = code;
}

function refreshCode(){
  var code = generateCode();
  document.getElementById('code').innerHTML = code;
}
</script>

这段代码中,首先使用window.onload事件,在网页加载完成后自动执行一次生成随机验证码的函数,并将生成的验证码字符串渲染到id为“code”的div元素中。然后为刷新验证码按钮绑定了一个refreshCode()函数,当用户点击按钮时,再次生成随机验证码,并将其渲染到对应的div元素中。

监听用户输入的验证码,进行验证

要实现验证码验证功能,可以为验证码输入框绑定一个onblur事件,当用户离开输入框时,自动进行验证。例如:

<!-- 验证码输入框 -->
<input type="text" id="input_code" onblur="checkCode()">

<script>
function checkCode(){
  var inputCode = document.getElementById('input_code').value;
  var code = document.getElementById('code').innerHTML;
  if(inputCode.toUpperCase() != code.toUpperCase()){
    alert('验证码不正确!');
  }
}
</script>

这段代码中,当用户离开输入框时,会自动执行checkCode()函数。该函数首先获取用户输入的验证码和生成的验证码字符串,使用toUpperCase()方法将它们转换为大写字母,再进行比较,如果不相等,则提示用户验证码不正确。

刷新验证码

最后是刷新验证码的功能,已经在第二个步骤中介绍了如何刷新验证码,这里再次提出。可以为刷新验证码按钮绑定一个onclick事件,点击按钮时重新生成新的验证码字符串,并渲染到页面上,例如:

<!-- 验证码显示区域 -->
<div id="code"></div>
<!-- 刷新验证码按钮 -->
<button onclick="refreshCode()">刷新验证码</button>

<script>
window.onload = function(){
  refreshCode();
}

function refreshCode(){
  var code = generateCode();
  document.getElementById('code').innerHTML = code;
  document.getElementById('input_code').value = '';
}
</script>

这段代码中,当用户点击刷新验证码按钮时,重新生成新的验证码字符串,并将它渲染到页面上,同时清空验证码输入框中的内容。

示例说明

下面提供两个示例说明:

示例1

<!-- 验证码显示区域 -->
<div id="code"></div>
<!-- 验证码输入框 -->
<input type="text" id="input_code" onblur="checkCode()">
<!-- 刷新验证码按钮 -->
<button onclick="refreshCode()">刷新验证码</button>

<script>
window.onload = function(){
  refreshCode();
}

function generateCode(){
  var code = '';
  for(var i=0; i<4; i++){
    var num = Math.floor(Math.random() * 62);
    if(num < 10){
      code += num; //数字
    }else if(num < 36){
      code += String.fromCharCode(num + 55); //大写字母
    }else{
      code += String.fromCharCode(num + 61); //小写字母 
    }
  }
  return code;
}

function refreshCode(){
  var code = generateCode();
  document.getElementById('code').innerHTML = code;
  document.getElementById('input_code').value = '';
}

function checkCode(){
  var inputCode = document.getElementById('input_code').value;
  var code = document.getElementById('code').innerHTML;
  if(inputCode.toUpperCase() != code.toUpperCase()){
    alert('验证码不正确!');
  }
}
</script>

这个示例演示了如何实现一个包含验证码显示区、验证码输入框以及刷新验证码按钮的完整验证码功能模块。

示例2

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>验证码示例</title>
</head>
<body>
  <div id="code">生成的验证码将显示在这里</div>
  <button onclick="refreshCode()">点击生成新的验证码</button>
  <button onclick="checkCode()">验证</button>
  <input type="text" id="input_code" placeholder="请输入验证码">
  <div id="result"></div>
  <script>
    function generateCode(){
      //生成验证码的代码省略
    }

    function refreshCode(){
      var code = generateCode();
      document.getElementById('code').innerHTML = code;
    }

    function checkCode(){
      var inputCode = document.getElementById('input_code').value;
      var code = document.getElementById('code').innerHTML;
      if(inputCode.toUpperCase() == code.toUpperCase()){
        document.getElementById('result').innerHTML = '验证通过!';
      }else{
        document.getElementById('result').innerHTML = '验证码不正确!';
      }
    }

    refreshCode();
  </script>
</body>
</html>

这个示例演示了如何将验证码功能嵌入到一个网页中,方便用户直接在该页面进行验证码验证。其中包含了生成验证码、刷新、验证码输入框和结果显示。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:原生js实现验证码功能 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 谈谈JavaScript中的函数与闭包

    JavaScript中的函数与闭包 函数 在JavaScript中,函数是一种可以进行重复使用的代码块。使用函数可以封装代码,使之变得更加易于维护和复用。在JavaScript中,函数有以下几个特点: 函数是一等公民,可以像其他对象一样被传递、存储和操作。 函数可以在定义时不指定参数,或者在调用时传递任意数量的参数。 函数可以有返回值,也可以在执行结束时不返…

    JavaScript 2023年5月27日
    00
  • JS JSOP跨域请求实例详解

    JS JSOP跨域请求实例详解 什么是跨域请求? 跨域请求是指在一个来源(即域名、端口、协议都相同)的网页中,不能发起对另一个来源的网页的请求。这是由浏览器的同源策略所限制的。 当在一个网页中通过 AJAX、Fetch、WebSocket 等方式向另一个域名(或主机名、端口号、协议)发起请求时,由于安全原因,浏览器会拦截这些请求,而这种被拒绝的请求就称为“跨…

    JavaScript 2023年5月27日
    00
  • JavaScript面试中常考的字符串操作方法大全(包含ES6)

    JavaScript面试中常考的字符串操作方法大全(包含ES6) 1. 字符串长度 获取字符串长度可以使用length属性,例如: const str = ‘Hello World’; console.log(str.length); // 11 2. 字符串索引 可以使用方括号([])来访问字符串中的单个字符,例如: const str = ‘Hello …

    JavaScript 2023年5月28日
    00
  • JS中内存泄漏的几种情况

    JavaScript 中的内存泄漏是指程序中使用的内存不再被需要却没有被释放,最终导致浏览器或者 Node.js 进程使用的内存越来越大,直到程序崩溃或者系统运行缓慢。 在 JavaScript 中,内存泄漏通常是由于变量、对象、闭包、事件监听器等长期存在而没有被释放引起的。这些长期存在的引用会阻止垃圾回收器回收内存,最终导致内存泄漏。     内存泄漏通常…

    JavaScript 2023年5月9日
    00
  • javascript使用中为什么10..toString()正常而10.toString()出错呢

    这是一个有趣的问题,事实上,10..toString() 和 10.toString() 演示的两种方法是不同的。 在 JavaScript 中,要调用对象的方法,我们通常使用点符号将对象与方法名称连接,例如 object.method()。然而,数字直接量(例如 10)之后的点符号(”.”) 会被 JavaScript 解释为带有小数的数字,因此解释器会尝…

    JavaScript 2023年5月18日
    00
  • JS实现简单的操作杆旋转示例详解

    下面我将详细讲解“JS实现简单的操作杆旋转示例”的完整攻略。 简介 “JS实现简单的操作杆旋转示例”是一篇介绍如何用JavaScript实现操作杆旋转效果的文章。该文章主要介绍了操作杆旋转的原理以及如何使用JavaScript实现旋转效果的具体步骤。 实现原理 操作杆旋转效果的原理很简单:通过改变操作杆的位置和旋转角度,来模拟操作杆的旋转过程。具体实现过程包…

    JavaScript 2023年6月10日
    00
  • Jquery判断IE6等浏览器的代码

    Jquery判断IE6的代码: if ($.browser.msie && $.browser.version == 6) { alert(‘您正在使用IE6浏览器’); } 该代码通过Jquery的$.browser属性判断浏览器类型,再根据$.browser.version属性判断浏览器版本。如果浏览器是IE6,就会执行代码块中的提示信息…

    JavaScript 2023年6月11日
    00
  • JavaScript 异常处理 详解

    JavaScript 异常处理详解 前言 JavaScript 异常处理是 JavaScript 编程中非常重要的一个方面,它能让我们在程序运行过程中更好地掌控代码的运行情况,减少程序出错的可能性,提高代码的可维护性和安全性。 什么是异常 在程序运行过程中,如果出现了错误,比如说访问了一个不存在的变量、将字符串和数字相加等非法操作,JavaScript 引擎…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部