设为首页 加入收藏

TOP

使用JavaScript随机生成数字混合字母的验证码
2019-09-17 15:39:25 】 浏览:10
Tags:使用 JavaScript 随机 生成 数字 混合 字母 验证
 
 
   
 
   
<script>
    // 封装一个随机生成数字的函数
    function random(a, b) {
        var n = Math.round(Math.random() * (a - b) + b);
        return n;
    }
    
//=====================================有漏洞版=============================================
    function getCode(){
        //定义一个字符串把所有可能都装进去,全部字母以及数字
        var codeStr = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

        //声明一个空的字符串,用作装随机生成的四个数。
        var str = "";

        //写一个循环用来重复随机生成几个数,以及将东西一个一个放进上面声明的空字符串内
        for (var i = 0; i < 4; i++) {
            var m = random(0,61);
            str += codeStr.charAt(m);
        }
        // 在外面调用函数时,一定要在函数内写返回值
        return str;
    }
    
    //调用函数
    console.log(getCode());
//====================================更为严谨版==============================================

//运行一下上面的代码我们会发现,字母出现的几率远远大过数字出现的几率。这是因为codeStr里面的字母有52个,
//  数字却只有10个,而这样并不能算是真正的随机。故我补充了下面的代码。


//思路:做一个随机生成数的库strData,循环四次,每次都会产生大写字母、小写字母、数字 各三个,也就是说strData // 里面放了12个数。再在strData库中随机(这样的随机才是真正的随机,每种可能的几率都是相同的)抽取四个数, // 放在新声明的str里,并且输出



    //封装一个随机生成数的库
    function randomStr(){
        var strData = "";
        //如果觉得12个数太少也可以多放点,将i<4修改即可
        for(var i=0;i<4;i++){
            var num = random(0,9);                              //数字
            var upper = String.fromCharCode(random(65,90));     //大写字母
            var lower = String.fromCharCode(random(97,122));    //小写字母
            strData = strData+num+upper+lower;                  //将所有结果放进strData中
            
        }
        var str = "";
        for (var i = 0; i < 4; i++) {
            str += strData[random(0,strData.length-1)];         //在strData里面随机抽取四个数
        }
        return str;

    }
    
    console.log(randomStr())


</script>
 
   

 

 

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇aabccd统计每个字符出现的次数,.. 下一篇下载了包在node_modules中,但没..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目