前端js+html實(shí)現(xiàn)驗(yàn)證碼

生成六位驗(yàn)證碼.png

html布局:

   <div class="yz">
       <div class="yz_code"></div>
       <button class="btn" type="btn">換一張</button>
   </div>  

style樣式:

<style>  
    .yz{
        width: 60%;
        height: 50px;
        line-height: 50px;
        margin: 100px auto;
    }
    .yz_code{
        float: left;
        width: 140px;
        text-align: center;
        height: 100%;
        border: 1px solid #000;
        margin-right: 20px;
    }
    button{
        margin-top: 24px;
        font-size: 16px;
        border: none;
        background: transparent;
        border-bottom: 1px solid blue;
    }
</style>

js代碼
需要用到j(luò)avaScript的math對(duì)象,代碼如下:

// 生成兩個(gè)數(shù)之間的隨機(jī)數(shù)
    function rnd(start,end){
        return Math.floor(Math.random()*(end-start+1))+start;
    }

    var str ="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    
    // 生成6位數(shù)字驗(yàn)證碼
    function code(){
        var arr = [];
        for(var i = 0;i<6;i++){
            arr[i] = str.charAt(rnd(0,str.length-1));
        }
        // 將數(shù)組轉(zhuǎn)化為字符串
        var res = arr.join("")
        $('.yz_code').html(res);
    }
  // 首次進(jìn)入時(shí)展示的驗(yàn)證碼
    code();

    $('.btn').click(function(event) {
        code();
    });

另一種生成驗(yàn)證的方式:

    // 生成驗(yàn)證碼的第二種方法
     var arr = [];
     var len = 6;
     for(var i = 0; i < len; i++){
        var num = rnd(48,122); // 58
        if ((num>=48&&num<=57)||(num>=65&&num<=90)||(num>=97&&num<=122)){
            arr[i] = String.fromCharCode(num);
        }else{
            // 如果不是有效ascii碼,則增加一次循環(huán)
            len++;
        }
    }

    console.log(arr.join(""));

不要忘記給我點(diǎn)贊奧~~~~


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容