咱们的验证码是在a-z,A-Z,0-9这62个数字或者字母中随机选出4个且这四个字母或者数字不重复做为验证码bash
一、 咱们须要这62个字母或者数字中随机的四个 ,咱们能够利用 Math.random()
这个是取0-1中的随机数 咱们须要用随机数0-61做为这62个字符大字符串的随即索引,dom
2 、可是Math.random()
整数小数都会取,因此咱们须要用Math.round()
这个函数使随机数四舍五入得Math.round(Math.random())
函数
三、 由于咱们取的是0-61之间的随机数因此咱们须要将这个值*61, 因此得Math.round(Math.random()*61)
这个就是咱们所须要的这个大字符串的索引ui
四、 其次咱们须要一个容器来盛装这4个随机的字符 且里边不能有重复的字符串, 这时咱们须要使用ofIndex===-1
由于当ofIndex===-1时说明这个容器中不存在这个值spa
function fn() {
var str = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM0123456789"
var s = '' //s就是盛装这四个随机的容器
while (s.length < 4) { //由于咱们须要四位的验证码因此使容器的长度=4
var n = Math.round(Math.random() * 61) //令n为随机的数 这个数将做为str的索引
if(s.indexOf(str[n])===-1){
s += str[n] //使未重复的项添加到容器中
}
}
return s
}
复制代码
一、如何获取n-m之间的一个随机整数: Math.round(Math.random()*(m-n)+n
利用Math中round和random获取code
二、如何令这个容器中不出现重复s.indexOf(str[n])===-1
当ofIndex===-1时说明这个容器中不存在这个值索引