直播商城原始碼,記一次 js隨機密碼

zhibo系統開發發表於2023-03-08

直播商城原始碼,記一次 js隨機密碼

前端需要隨機密碼生成,利用數字、大小寫、特殊字元自動生成,純JS實現

<html>
    <head>
        <title>隨機密碼</title>
        <style>
            .hid {
                display: none;
            }
              .org{
                font-weight: normal;
                color: #F7B500;
            }
              .red{
                color:#da1318
            }
            .qgreen{
                color:#8BC34A
            }
              .green{
                color:#467a05
            }
        </style>
    </head>
    <body>
        <div class="Box">
            <label>密碼長度:</label><input id="inum" type="number" value="10" />
        </div>
        <div class="Box">
            <label>所含字元:</label>
            <input type="checkbox" class="checkbox" data-text="number_array" name="checkText" checked="checked"><em class="strTxt">數字  0-9</em>
            <input type="checkbox" class="checkbox" data-text="letter_lowercase_array" name="checkText" checked="checked"><em class="strTxt">小寫字母  a-z</em>
            <input type="checkbox" class="checkbox" data-text="letter_capital_array" name="checkText" checked="checked"><em class="strTxt">大寫字母  A-Z</em>
            <input type="checkbox" class="checkbox" data-text="special_char_array" name="checkText" checked="checked"><em class="strTxt">常用符號  ~!@#$%^&amp;*()_+</em>
        </div>
 
        <button onclick="generate_pw()">生產密碼</button>
        <div class="Box">
            <label>密碼:</label><input id="newpw" type="text" />
            <em id="msgColor" class="hid">(檢測提示(1-4):<em id="msg">密碼強度高</em>)</em>
        </div>
    </body>
<script type='text/javascript'>
 
     function generate_pw(){
       var pwdLen= document.getElementById("inum").value;
       pwdLen=pwdLen?pwdLen:10;
       var ElementCheckText=document.getElementsByName("checkText");
       var isNumber= ElementCheckText[0].checked;
       var isLowerCase= ElementCheckText[1].checked;
       var isUpperCase= ElementCheckText[2].checked;
       var isSpecialChars= ElementCheckText[3].checked;
       var newpwd=getRandomPwd(pwdLen,isNumber,isLowerCase,isUpperCase,isSpecialChars);
       document.getElementById("newpw").value=newpwd
       var passwordStrong=validate(newpwd);
        var ElementMsgColor = document.getElementById('msgColor');
        var ElementMsg = document.getElementById('msg');
        ElementMsgColor.setAttribute("class", "hid");
      switch(passwordStrong){
        case 1:
            ElementMsgColor.setAttribute("class", "red");
            ElementMsg.innerHTML='密碼強度1:差';
        break;
        case 2:
            ElementMsgColor.setAttribute("class", "org");
            ElementMsg.innerHTML='密碼強度2:良好';
        break;
        case 3:
            ElementMsgColor.setAttribute("class", "qgreen");
            ElementMsg.innerHTML='密碼強度3:高';
        break;
        case 4:
            ElementMsgColor.setAttribute("class", "green");
            ElementMsg.innerHTML='密碼強度4:強';
        break;
      }
 
 
    }
 
    function validate(sValue){
        let passwordStrong = 0;
          //正規表示式驗證符合要求的
          if (sValue.length < 1) return passwordStrong;
          if (/\d/.test(sValue)) passwordStrong++; //數字
          if (/[a-z]/.test(sValue)) passwordStrong++; //小寫
          if (/[A-Z]/.test(sValue)) passwordStrong++; //大寫
          if (/\W/.test(sValue)) passwordStrong++; //特殊字元
        return passwordStrong
    }
    /*
    獲取隨機密碼
    psdLen:密碼長度
    isNumber:是否包含字母
    isLowerCase:是否包含小寫
    isUpperCase:是否包含大寫
    isSpecialChars:是否包含特殊字元
    */
    function getRandomPwd(pwdLen,isNumber,isLowerCase,isUpperCase,isSpecialChars){
            var number='1234567890';
            var lowerCase='abcdefghijklmnopqrstuvwxyz';
            var upperCase='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
            var specialChars='~!@#$%^&*()_+';
 
            var dictionary='';
 
            if(isNumber)dictionary+=number;
            if(isLowerCase)dictionary+=lowerCase;
            if(isUpperCase)dictionary+=upperCase;
            if(isSpecialChars)dictionary+=specialChars;
            if(dictionary=='')return ''
            let str = '';
            for(let i=0;i<pwdLen;i++){
                str +=  dictionary[parseInt(Math.random()*dictionary.length)]
            }
            return str
    }
 
 
    
</script>
</html>

以上就是 直播商城原始碼,記一次 js隨機密碼,更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2938653/,如需轉載,請註明出處,否則將追究法律責任。

相關文章