JS如何生成随机验证码
本文实例为大家分享了JS生成随机验证码的具体代码,供大家参考,具体内容如下
在网站中我们很常见到形形色色的验证码,今天我们来用JS来生成一个随机的二维码。
我们需要用到canvas来进行验证码的绘制
什么是Canvas
HTML5的canvas元素使用JavaScript在网页上绘制图像。
画布是一个矩形区域,您可以控制其每一像素。
canvas拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。
思路
我们要做的二维码首先要有随机的数字,其次就是要有随机的位置。
HTML
JS
functiongetVerification(){//二维码 varctx=document.getElementById("canvas").getContext("2d"); //清空画布 ctx.clearRect(0,0,400,400); //设置字体 ctx.font="128pxbold黑体"; //设置垂直对齐方式 ctx.textBaseline="top"; //设置颜色 ctx.fillStyle=randomColor(); //绘制文字(参数:要写的字,x坐标,y坐标) ctx.fillText(getRandomNum(10),0,getRandomNum(50)); ctx.fillStyle=randomColor(); ctx.fillText(getRandomNum(10),50,getRandomNum(50)); ctx.fillStyle=randomColor(); ctx.fillText(getRandomNum(10),100,getRandomNum(50)); ctx.fillStyle=randomColor(); ctx.fillText(getRandomNum(10),150,getRandomNum(50)); }
我们使用ctx.fillStyle=randomColor();来设置随机的颜色,每写一个数字换一个颜色,randomColoe()函数代码如下,可以随机生成十六进制颜色码。
functionrandomColor(){ varcolorValue="0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f"; varcolorArray=colorValue.split(","); varcolor="#"; for(vari=0;i<6;i++){ color+=colorArray[Math.floor(Math.random()*16)]; } returncolor; }
我们使用getRandomNum()来获取随机显示的数字和随机每次字体的y轴方向的位置。验证码的每个数字分别进行获取。传入的参数n来确定随机数范围。代码如下:
functiongetRandomNum(n){ returnparseInt(Math.random()*n); }
完整代码:
2 看不清