zoukankan      html  css  js  c++  java
  • 使用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>
    
    
    
     
  • 相关阅读:
    redis 之redis集群与集群配置
    redis 之redis-sentinel主从复制高可用
    Python 基础之函数的嵌套与nonlocal修改局部变量及闭包函数
    Rocket
    Rocket
    Rocket
    Rocket
    Rocket
    Rocket
    Rocket
  • 原文地址:https://www.cnblogs.com/funseey/p/11392278.html
Copyright © 2011-2022 走看看