美文网首页
生成含有大小写字母、数字、特殊字符的密码字符串.js

生成含有大小写字母、数字、特殊字符的密码字符串.js

作者: 风烟一纸 | 来源:发表于2020-09-16 16:57 被阅读0次
    const lowerLetterArr = [
        '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',
    ]
    
    const upperLetterArr = [
        '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',
    ]
    
    const numberArr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
    const specialArr = [
        '~',
        '!',
        '@',
        '#',
        '$',
        '%',
        '^',
        '&',
        '*',
        '(',
        ')',
        '-',
        '_',
        '+',
        '=',
        '?',
        '/',
        ';',
        '<',
        '>',
        '{',
        '}',
        '|',
        '\\',
        '[',
        ']',
        '.',
    ]
    /**
     * 生成密码字符串
     * @param lowerLetterNum 小写字母个数
     * @param upperLetterNum 大写字母个数
     * @param numberNum 数字个数
     * @param specialNum 特殊字符个数
     */
    
    function getPassWord(lowerLetterNum, upperLetterNum, numberNum, specialNum) {
        let password = '' //生成的密码
        // 数组长度
        let lowerLetterArrLeng = lowerLetterArr.length
        let numberArrLeng = numberArr.length
        let specialArrLeng = specialArr.length
        let upperLetterArrLeng = upperLetterArr.length
    
        function randomNum(length) {
            // 随机生成不超过数组长度的整数
            return Math.floor(Math.random() * length)
        }
    
        for (let i = lowerLetterNum; i > 0; i--) {
            // 小写
            let x = randomNum(lowerLetterArrLeng)
            password += lowerLetterArr[x]
        }
    
        for (let j = upperLetterNum; j > 0; j--) {
            // 大写
            let y = randomNum(upperLetterArrLeng)
            password += upperLetterArr[y]
        }
    
        for (let m = numberNum; m > 0; m--) {
            // 数字
            let z = randomNum(numberArrLeng)
            password += numberArr[z]
        }
    
        for (let n = specialNum; n > 0; n--) {
            // 特殊字符
            let s = randomNum(specialArrLeng)
            password += specialArr[s]
        }
        // 返回生成的密码
        return password
    }
    
    
    

    相关文章

      网友评论

          本文标题:生成含有大小写字母、数字、特殊字符的密码字符串.js

          本文链接:https://www.haomeiwen.com/subject/zxhhyktx.html