• 六位数字字母验证码


    效果图

    html部分

    <body>
        <input type="text" id="ipt"/>
        <div id="box" onclick="reset()"></div>
    </body>

    input部分是需要输入的部分,div部分是自动生成的验证码

    style部分

    <style>
        #box{
            width:180px;
            height: 50px; 
            text-align: center;
            border:1px solid #ccc;
            cursor: pointer;
            background:linear-gradient(to top,#0072e5,#3f9efe)
        }
        #box span{
            display: inline-block;
            font-size: 26px;
            width:16px;
            height: 50px;
            line-height: 50px;
            font-family: "microsoft yahei";
            -webkit-text-stroke: 1px #ccc;
        }
    </style>

    js部分

    <script>
        //验证码  6位数的验证码
        function authCode(){
            var str = '';
            while(str.length<6){
                var num = random1Num(48,122)        
                if((num>57&&num<65)||(num>90&&num<97)){
                    num = random1Num(48,122)
                }else{
                    str += '' + String.fromCharCode(num)
                }           
            }
            return str
        }
        //随机数 n小于m
        function random1Num(n,m){
            return parseInt(n+Math.random()*(m-n+1));
        }
        //随机颜色
        function randomColor(){
            var R = random1Num(0,255)
            var G = random1Num(0,255)
            var B = random1Num(0,255)
            return "#"+string2Num(R,G,B) 
        }
        //转换为16进制不足补0
        function string2Num(r,g,b){
            r = r.toString(16).length<2?"0"+r.toString(16):r.toString(16);
            g = g.toString(16).length<2?"0"+g.toString(16):g.toString(16);
            b = b.toString(16).length<2?"0"+b.toString(16):b.toString(16);
            return r+g+b;
        }
      
        var code = authCode()
        // $("#box").text(code)
        //将字符串转成数组
        var arrcode = code.split('')
        //将数组放进单个的span标签中
        for(var i = 0;i < arrcode.length;i++){
            $("#box").append('<span>'+arrcode[i]+'</span>')
            $("span:nth-child("+ (i+1) +")").css({
                "color":randomColor(),
                "transform":"rotate("+random1Num(-30,30) +"deg)",
                "fontSize":""+ random1Num(24,36) +"px",
                "marginTop":""+ random1Num(-3,3) +"px",
                "marginLeft":""+ random1Num(-2,6) +"px",
                "marginRight":""+ random1Num(-2,8) +"px"
            })
        }   
        //点击生成新的验证码
        function reset(){
            //清除原有的数据
            $("#box span").remove()
            $("#ipt").val("")
            //重新生成验证码
            code = authCode() 
                arrcode = code.split('')
            for(var i = 0;i<arrcode.length;i++){
                $("#box").append('<span>'+arrcode[i]+'</span>')
                $("span:nth-child("+ (i+1) +")").css({
                "color":randomColor(),
                "transform":"rotate("+random1Num(-30,30) +"deg)",
                "fontSize":""+ random1Num(24,36) +"px",
                "marginTop":""+ random1Num(-3,3) +"px",
                "marginLeft":""+ random1Num(-2,6) +"px",
                "marginRight":""+ random1Num(-2,8) +"px",
    
            })
            } 
        }
    
        //校验
        $("#ipt").on("blur",function(){
            //都转成小写,即不区分大小写
            if($("#ipt").val() != ""){
                if($("#ipt").val().toLowerCase() == code.toLowerCase()){
                alert("验证码输入正确!")
                }else{
                    alert("验证码输入错误!")
                } 
            }
        })
    
    
    
    </script>
  • 相关阅读:
    [CF1398E] Two Types of Spells
    [CF1399E2] Weights Division (hard version)
    [CF1400E] Clear the Multiset
    Review 2020.10.29
    Review 2020.10.11
    [CF1409F] Subsequences of Length Two
    [CF1413E] Solo mid Oracle
    [2020CCPC威海C] Rencontre
    [2020CCPC威海B] Labyrinth
    phpredis实现简单的消息队列
  • 原文地址:https://www.cnblogs.com/wong-do/p/9032859.html
Copyright © 2020-2023  润新知