常用密码正则表达式验证

来源:互联网 发布:数控编程兼职 编辑:程序博客网 时间:2024/06/04 19:06

至少8个字符,包含字母和数字

/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/

至少8个字符,包含字母大小写和数字

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/

至少8个字符,包含字母大小写和数字及特殊字符

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*?])[A-Za-z\d!@#$%^&*?]{8,}/

8-20个字符,包含字母大小写和数字及特殊字符

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*?])[A-Za-z\d!@#$%^&*?]{8,20}/

实践

随机生成一个8-15位的字符串,必须包含数字,字母大小写和指定特殊字符(-_#)

/** * min: 长度下限 * max: 长度上限 */function randGen(min, max) {    // 种子集合    const seed = [        '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',        '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',        '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 genReg = /^(?=.*[A-Za-z])(?=.*\d)(?=.*[-_#])[A-Za-z\d-_#]/;    // 辅助变量    let dist = '',  // 目标字符串        pos = 0,    // 随机位置        range = Math.round(Math.random() * (max - min)) + min;    // 不符合规则,继续查找    while(!genReg.test(dist)) {        // 重新赋值之前一定要清空,否则将会陷入死循环        dist = '';        // 随机生成一个字符串,此时生成的不一定符合规则        for(let i = 0; i < range; i++) {            pos = Math.round(Math.random() * (seed.length - 1));            dist += seed[pos];        }    }    // 符合规则,返回    return dist;}
原创粉丝点击