原生js实现数字字母混合验证码的简单实例


Posted in Javascript onDecember 10, 2015

本文实例讲述了原生js实现数字字母混合验证码的全部代码,重点是注释很详细,便于大家理解,特分享给大家供大家参考。具体如下:
运行效果截图如下:

原生js实现数字字母混合验证码的简单实例

具体代码如下:

<!DOCTYPE html>
<html>
<head>
  <meta charset="gb2312">
  <title></title>
  <style type="text/css">
    body, div {
      margin: 0;
      padding: 0;
      font-size: 18px;
      font-family: "微软雅黑";
      -webkit-user-selelct: none;
    }

    #code {
      position: absolute;
      top: 50%;
      left: 50%;
      margin-top: -25px;
      margin-left: -50px;
      width: 100px;
      height: 50px;
      line-height: 50px;
      text-align: center;
      border: 1px solid #ff0000;
      cursor: pointer;
      letter-spacing: 5px;
    }
  </style>
</head>
<body>
<div id="code">
  xdF2
</div>
<script type="text/javascript">
  //当前验证码获取的随即范围
  var codeStr = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
  //思想:0-61索引 只需要随机生成4个索引,然后charAt可以获取随机4个索引。
  var oDiv = document.getElementById("code");

  function getRandom(n, m) {
    n = Number(n);       //转换n,m,结果不是数字就是NaN
    m = Number(m);
    if (isNaN(n) || isNaN(m)) {     //判断n,m,是不是有效数字,如果n或m其中一个传入的不是数字
      return Math.random();      //返回 【0-1)之间的随机小数
    }
    if (n > m) {             //如果n大于m,则交换位置
      var temp = n;
      n = m;
      m = temp;
    }
    return Math.round(Math.random() * (m - n) + n);          //返回,取m,n之间的随机整数。
  }


  function getCode() {       
    var str = "";


//定义一个空字符串备用
    for (var i = 0; i < 4; i++) {    //遍历4个索引
      var ran = getRandom(0, 61);      //调用getRandom方法,随机获取一个索引0-61里的随机索引
      str += codeStr.charAt(ran);      //把codeStr字符串里,我们指定获取ran(这个4个索引);
    }
    oDiv.innerHTML = str;       //呈现在页面上
  }

  getCode();              //调用方法
          
  oDiv.onclick = function () {
    getCode();
  }
</script>
</body>
</html>
Javascript 相关文章推荐
Javascript 中文字符串处理额外注意事项
Nov 15 Javascript
js 模拟气泡屏保效果代码
Jul 10 Javascript
Prototype源码浅析 Enumerable部分(二)
Jan 18 Javascript
js导航栏单击事件背景变换示例代码
Jan 13 Javascript
layui select动态添加option的实例
Mar 07 Javascript
收集前端面试题之url、href、src
Mar 22 Javascript
快速解决brew安装特定版本flow的问题
May 17 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
Nov 08 Javascript
js实现京东秒杀倒计时功能
Jan 21 Javascript
浅谈js中的bind
Mar 18 Javascript
JavaScript canvas基于数组生成柱状图代码实例
Mar 06 Javascript
原生js实现点击按钮复制内容到剪切板
Nov 19 Javascript
js实现新年倒计时效果
Dec 10 #Javascript
jquery判断复选框是否选中进行答题提示特效
Dec 10 #Javascript
jQuery实现选项卡切换效果简单演示
Dec 09 #Javascript
jquery特效 点击展示与隐藏全文
Dec 09 #Javascript
AngularJS实现表单手动验证和表单自动验证
Dec 09 #Javascript
js实现微信分享代码
Oct 11 #Javascript
JavaScript观察者模式(经典)
Dec 09 #Javascript
You might like
dedecms模板标签代码官方参考
2007/03/17 PHP
PHP Global变量定义当前页面的全局变量实现探讨
2013/06/05 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
PHP数据库操作三:redis用法分析
2017/08/16 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
2021/03/04 PHP
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
2014/05/04 Javascript
IE中getElementsByName()对有些元素无效的解决方案
2014/09/28 Javascript
javascript设计模式之中介者模式Mediator
2014/12/30 Javascript
AngularJS基础学习笔记之简单介绍
2015/05/10 Javascript
AngularJs 60分钟入门基础教程
2016/04/03 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
Bootstrap基本样式学习笔记之表单(3)
2016/12/07 Javascript
Bootstrap实现各种进度条样式详解
2017/04/13 Javascript
微信小程序获取用户openId的实现方法
2017/05/23 Javascript
微信小程序url与token设置详解
2017/09/26 Javascript
基于vue-video-player自定义播放器的方法
2018/03/21 Javascript
详解webpack打包后如何调试的方法步骤
2018/11/07 Javascript
vue项目中mock.js的使用及基本用法
2019/05/22 Javascript
[57:22]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第五场
2018/04/10 DOTA
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
python中requests库session对象的妙用详解
2017/10/30 Python
python3 实现的对象与json相互转换操作示例
2019/08/17 Python
Django中的FBV和CBV用法详解
2019/09/15 Python
win10环境下配置vscode python开发环境的教程详解
2019/10/16 Python
python tkinter之顶层菜单、弹出菜单实例
2020/03/04 Python
Python使用Selenium模拟浏览器自动操作功能
2020/09/08 Python
记一次Django响应超慢的解决过程
2020/09/17 Python
python中用ctypes模拟点击的实例讲解
2020/11/26 Python
2015年世界水日活动总结
2015/02/09 职场文书
2015年世界环境日演讲稿
2015/03/18 职场文书
工作态度不好检讨书
2015/05/06 职场文书
热血教师观后感
2015/06/10 职场文书
2015年度优秀员工获奖感言
2015/07/31 职场文书
民警忠诚教育心得体会
2016/01/23 职场文书
golang 实现两个结构体复制字段
2021/04/28 Golang