JavaScript 编写随机四位数验证码(大小写字母和数字)
1、JavaScript编写随机四位数验证码,用到的知识点为:
a、Math对象的随机数:Math.random()
b、Math对象的取整 :Math.floor()
c、处理所需要的下标个数,结合以上两个Math对象。
2、首先,来做几道简单的结果输出。
a、Math.random()*100;
b、Math.floor(Math.random()*100);
c、Math.floor(Math.random()*100)%16;
相信大家前两道题很容易就能够做对。结果分别是 a、0-100之间的随机浮点数。b、0-100之间的随机整数。
那么第三道题无非就是 0-100之间的随机整数对16取余数,将会是一个什么区间呢 ?
在这里我告诉大家一个方法:
任何数字对某一个数字取余数,那么最小的余数应该是 0 本身,那么最大的余数应该是什么呢? 答案当然是比他小 1 。
以这道题为例:100%16 最大的余数当然是 15 , 因为余数如果是16 的话他将被整除,最终余数为0.
3、说了这么多小问题,基础题,我们学会了这些能够做什么呢?
本篇文章为大家编写 一个 随机验证码(4位数 大小写字母 数字组成)实现 随机变换颜色, 随机变换字号大小 , 随机抽取字母数字。
/*
1、随机的颜色,随机的字号,随机的字母数字。
颜色由:0-9的数字,a-f的字母组成。
字号:以html标记font的属性1-7组成。
字母数字:小写26个字母,大写26个字母,0-9 的 数字组成。
2、创建三个数组,数组元素为以上三组。
3、4位数验证码,需要使用循环遍历,条件是4次。每次在这个循环中,我需要产生随机颜色数组长度的下标、随机字号数组颜色的下标、随机抽取字母大小写,数字样本数组的下标。
4、拼接字符串,每次生成一个font元素, color="颜色数组[随机下标]" size = "字号数组[随机下标]" 内容为:字母数字样本[随机下标]
5、输出随机字符串
*/ <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>4位字母验证码</title>
<script type="text/javascript">
function checkCodeofRandom(){
// 所需随机抽取的样本数组
var nums=new Array("q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","z","x","c","v","b","n","m","A","W","E","R","T","Y","U","I","O","P","A","S","D","F","G","H","J","K","L","Z","X","C","V","B","N","M","0","1","2","3","4","5","6","7","8","9");
// 初始化 拼接字符串
var str="";
//颜色需要的数组元素
var nums1=new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
var n1="";
//字号需要的数组元素
var nums2=new Array("1","2","3","4","5","6","7");
var n2;
for(i=0;i<4;i++){
//遍历拼接颜色色值 eg 000000
for(var j=0;j<6;j++){
var k=Math.floor(Math.random()*100)%16;
n1=n1+nums1[k];
}
//每次生成一个随机的字号
var o=Math.floor(Math.random()*100)%8;
n2=nums2[o];
//每次生成一个0 - 61 之间的 number 作为随机获取验证码的下标
var p=Math.floor(Math.random()*1000)%62;
//拼接验证码 随机颜色 随机字号 随机抽取大小写字母和数字
str+="<font color='#"+n1+"' size='"+n2+"'>"+nums[p]+"</font>"
}
document.getElementById("checkCode").innerHTML = str;
} </script>
</head>
<body>
<div id = 'checkCode' style="width:100px; float: left; "></div>
<button id = "btn" onclick="checkCodeofRandom()">获取验证码</button>
</body>
</html>
本博客是博主自己研究,编写的随机验证码,请深入理解其随机思想。在此基础上可以衍生多位数验证码,或者组成元素更多的验证码。
希望广大编程爱好者的意见或者建议,转载需要注明博主地址,谢谢。
JavaScript 编写随机四位数验证码(大小写字母和数字)的更多相关文章
- 22、vue实现随机四位数验证码
效果图: 1.新建生成验证码的组件Sidentify.vue(代码如下): <template> <div class="s-canvas"> <ca ...
- C# 随机四位数验证码
string str ="abcdefghigklmnopqrstuvwxyzABCDEFJHIGKLMNOPQRSTUVWXYZ1234567890"; while(true){ ...
- c# 产生随机字符串,包括大小写字母和数字
#region MyRegion //產生密碼 protected static string GetPwd() { return CreateRandomNum123(2) + CreateRand ...
- Java随机获取32位密码且必须包含大小写字母、数字和特殊字符,四种的任意三种
Java随机获取32位密码且必须包含大小写字母.数字和特殊字符,四种的任意三种 Java随机获取32位密码且必须包含大小写字母.数字和特殊字符,四种的任意三种,代码如下: import java.ut ...
- 用MFC完成一个简单的猜数字游戏: 输入的四位数中,位置和数字都正确为A,数字相同而位置不同的为B。
最近学习了MFC一些比较基础的知识,所以打算通过做一个简单的数字游戏来理解MFC的流程并进一步熟悉其操作. 在这里,我做了一个猜数字的小游戏.第一步当然是设计主界面,先给大家展示一下游戏界面: 主界面 ...
- iOS开发-通过正则表达式进行各种判断银行卡,车牌号,邮箱地址,QQ,身份证,全字母,仅输入字母或数字同时包含大小写字母和数字,仅能输入中文等
/* * 验证银行卡号是否正确 * 车牌号验证 * 检验邮箱地址是否正确 * 手机号中间四位密文显示 * 判断QQ号是否正确(5-11位) * 判断身份证号是否正确(如末位为字母请用“x” ...
- Python 使用正则表达式验证密码必须包含大小写字母和数字
校验密码是否合法的程序. 输入一个密码 1.长度5-10位 2.密码里面必须包含,大写字母.小写字母和数字 3.最多输入5次 ===================================== ...
- java正则表达式校验密码必须是包含大小写字母、数字、特殊符号的8位以上组合
一.需求:密码必须是包含大写字母.小写字母.数字.特殊符号(不是字母,数字,下划线,汉字的字符)的8位以上组合 二.方案:利用正则表达式来校验 三.思路:排除法 1.排除大写字母.小写字母.数字.特殊 ...
- 载 js验证密码 必须由大小写字母、数字和特殊字符组成
转自:https://blog.csdn.net/weixin_43824935/article/details/93601064 密码长度8-16位 必须由大写字母,小写字母,数字,特殊符号组成 正 ...
随机推荐
- IE下 checkbox、radio等标签的label中的img点击无效(点击不能选中)问题解决
类似以下代码,点击图片不能选中checkbox <input id="dw_1" name="shape[]" value="Round&quo ...
- kibana启动调试
在windows的命令行窗口中,将路径制定到kibana的源代码bin目录中,然后执行 kibana.bat --dev --no-base-path 需要注意的是kibana.yml中的配置文件需要 ...
- C/C++中qsort()以及sort()的用法
最近学弟们问快速排序的比较多,今天自己就做一下总结,快速排序在库函数里面有现成的,不用自己实现,调用一下就可以达到自己想要的结果,掌握以后就可以完全摒弃冒泡和选择了,并且时间复杂度也从O(n*n)提升 ...
- 新磁盘创建lvm并挂载
### .查看硬盘 fdisk -l ### 删除分区 fdisk /dev/sdc ### 按d删除,按w保存并退出 ### 创建pv pvcreate /dev/sdc ### 创建 vg vgc ...
- flink日记
直接下载 解压, 运行 ./bin/start-cluster.sh 几个概念: 批处理: 大数据量,不要求实时. 输入源是有界的 流处理:实时要求高,通常在毫秒级, 数据量比较小,但是输入源是无界的 ...
- java——字典树 Trie
字典树是一种前缀树 package Trie; import java.util.TreeMap; public class Trie { private class Node{ public boo ...
- app常见测试点
安装与卸载: ●应用是否可以在IOS不同系统版本或android不同系统版本上安装(有的系统版本过低,应用不能适配) ●软件安装后是否可以正常运行,安装后的文件夹及文件是否可以写到指定的目录里. ●安 ...
- C# 利用ADO.NET导出大批量数据
2015年12月,XX项目中需要做一个数据导出功能,当时所有页面的到处功能均已经实现,但有个页面数据量太大,导出过程中导出页面直接卡死.不得已我准备选用ADO.NET来重新完成这个功能,因为考虑到越偏 ...
- tcp发送缓冲区学习
https://blog.csdn.net/ysu108/article/details/7764461 Nginx 模块开发书上有内容 陶辉博客也可以
- =与==、&与&&、| 与 || 的区别
=与== =属于赋值运算符,将右侧的值赋给左侧的变量名称 ==属于关系运算符,判断左右两边值是否相等,结果为boolean类型 &与&& &是逻辑与,&& ...