JS字符串--验证码(学习笔记)与题

随机获取验证码

  1. 纯数字组成的验证:即验证码的每一位都是数字,每一个数字的范围是 0~9,这种验证码非常容易破解,现在不怎么使用了
    利用 parseInt(Math.random() * 10); 就可以得到一位验证码
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8"/>
        <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
        <meta http-equiv="X-UA-Compatible" content="ie=edge"/>
        <title>Document</title>
        <script>
            
            //n位验证码  每一个数字的范围 0~9   parseInt(Math.random() * 10);
            function numTestCode(n){
                var arr = []; //存储生成的数字
                for(var i = 0; i < n; i++){
                    var num = parseInt(Math.random() * 10);
                    arr.push(num);
                }
                return arr.join("");
            }

             alert(numTestCode(6));
			 
        </script>
    </head>
    <body>
        
    </body>
</html>

在这里插入图片描述
在这里插入图片描述

  1. 数字和字符组成的验证码:
  • 0~9
  • a-z : ASCII码值为97~122
  • A-Z : ASCII码值为65~90

所以获得这种验证码的方法是取 0~122 的随机数

            function testCode(n){
                var arr = [];
                for(var i = 0; i < n; i++){
                    var num = parseInt(Math.random() * 123);
                    if(num >= 0 && num <= 9){
                        arr.push(num);
                    }else if(num >= 97 && num <= 122 || num >= 65 && num <= 90){
                        arr.push(String.fromCharCode(num));
                    }else{
                        i--;
                    }
                }

                return arr.join("");
            }

            alert(testCode(6));

在这里插入图片描述
在这里插入图片描述

点击按钮获取验证码

  1. 基本的DOM操作-事件驱动函数
  • document.getElementById(id) : 通过id获取页面上对应的标签
  • node.innerHTML : 标签间的内容
  1. 通过div写一个验证码框和点击按钮,通过点击按钮每次获得不同的验证码值
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8"/>
        <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
        <meta http-equiv="X-UA-Compatible" content="ie=edge"/>
        <title>Document</title>
        <style>
            #div1{width: 100px; height: 30px; border: 1px solid black; text-align: center; line-height: 30px; font-size: 18px}
        </style>
        <script src = 'tool.js'></script>
        <script>
          
            function btnClick(){
                //拿到div这个标签
                var oDiv = document.getElementById("div1");
                // alert(oDiv.innerHTML);  取值
                // oDiv.innerHTML = '赋值';

                oDiv.innerHTML = testCode(6);
            }
        </script>
    </head>
    <body>
        <div id = 'div1'>000000</div>
        <!-- 点击按钮,就会执行后面字符串中的代码 -->
        <button onclick = 'btnClick();'>获取验证码</button>
    </body>
</html>

将之前写的获取验证码的方法放进"tool.js"文件中,在html文件中通过 <script src = 'tool.js'></script>引用

//tool.js中
function numTestCode(n){
    var arr = []; //存储生成的数字
    for(var i = 0; i < n; i++){
        var num = parseInt(Math.random() * 10);
        arr.push(num);
    }
    return arr.join("");
}
function testCode(n){
    var arr = [];
    for(var i = 0; i < n; i++){
        var num = parseInt(Math.random() * 123);
        if(num >= 0 && num <= 9){
            arr.push(num);
        }else if(num >= 97 && num <= 122 || num >= 65 && num <= 90){
            arr.push(String.fromCharCode(num));
        }else{
            i--;
        }
    }
    return arr.join("");
}

在这里插入图片描述
点击“获取验证码”
在这里插入图片描述

在这里插入图片描述
代码

char * longestPalindrome(char * s){
    int len = strlen(s), start = 0, max = 0;  
    for (int i = 0; i < len; i++) {   
        int left = i - 1, right = i + 1;
        while (left >= 0 && right < len && s[left] == s[right]){
            left--; 
            right++;            
        }                               
        if (right - left - 1 > max) {   
            start = left + 1;
            max = right - left - 1;
        }
    }
    for (int i = 0; i < len; i++) {   
        int left = i, right = i + 1;    
        while (left >=0 && right < len && s[left] == s[right]) {
            left--;
            right++;
        }
        if (right - left - 1 > max) {
            start = left + 1;
            max = right - left - 1;
        }
    }
    s[start + max] = '\0';      
    return s + start;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值