Javascript验证码的生成和验证,源代码

如果有幸被那位大神看见希望可以为我指出下面的问题

我是一个前端白小白,刚开始学和记录自己感觉不错的小项目,各位大神有好的方法或者更好的写法可以指点一二,写不好的时候随便喷 我想看一下我潜力到底有多大。

  • <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>随机验证码生成于校验</title>
            <style>
                #div1{
                    width: 100px;
                    height: 100px;
                    background: #ccc;
                     align-items: center;
                     display: flex;
                     justify-content: center;
                     cursor: pointer;
                }
                #pp{
                    color: red;
                    font-size: 18px;
                    
                   
                }
            </style>
        </head>
        <body>
            <div id="div1">
                <p id="pp"></p>
            </div>
            <input type="text" id="input1">
            <input type="button" value="验证" id="input">
            <script>
                window.onload=function(){ 
                    //设置全局变量
                    var code;
                    //获取id
                    var codeDiv = document.getElementById("pp");
                    var codeinput=document.getElementById("input1");
                    var codeValue = document.getElementById("input");
                    var div2 = document.getElementById("div1");
                    //调用函数并赋值给p标签
                    codeDiv.innerHTML=randomCode();
                    //获取随机数的函数
                    
                    function random(max,min){
                        return Math.floor(Math.random()*(max-min)+min);
                    }
                    
                    function randomCode(){
                        code='';
                        //设置验证码长度
                        var codeLength = 4;
                        //设置验证码的范围
                        var creatCode=[0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F','G','H','I',
                                            'J','K','L','M',' N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];
                                          
                        for(var i=0;i<codeLength;i++){
                                //设置随机范围
                            var index = random(0,36);
                             code+=creatCode[index];
                                
                            }
                       return code;
                    }
                    //点击事件 对验证码对错判断
                    codeValue.onclick=function(){
                        // 把输出框中的字符转换成大写字母
                        var dx = codeinput.value.toUpperCase();
                        if(dx===code){
                            //跳转页面地址
                            window.location.href='https://www.baidu.com';
                        }else{
                            alert("输入验证码不正确");
                           //把输入框清空
                           codeinput.value='';
                           //在刷新验证码
                            codeDiv.innerHTML=randomCode();
                            
                        }
                    }
                    
                    div2.onclick=function(){
                        codeDiv.innerHTML=randomCode();
                    }
                   
                }
            </script>
        </body>
    </html>

第一个问题:这个里面我有一个问还是不明白。

 function randomCode(){
                    code='';
                    //设置验证码长度
                    var codeLength = 4;
                    //设置验证码的范围
                    var creatCode=[0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F','G','H','I',
                                        'J','K','L','M',' N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];
                                      
                    for(var i=0;i<codeLength;i++){
                            //设置随机范围
                        var index = random(0,36);
                         code+=creatCode[index];
                            
                        }
                   return code;
                }

就是这上面这段代码中,那个return code;我一开始是打算用直接codeDiv.innerHTML= code,但是我这样写报错了我也不知道为啥 ,

第二问题:有时候生成的验证码中会有下图一样的间距 ,这是怎么会事呢?

 

 感谢大神能看完

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值