本文主要是介绍生成包括大小写字母数字以及符号的密码且不能有连续或者倒叙以及其校验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一 : 生成随机密码
生成随机密码
// 随机生成密码方法
function randomPassword(min: number, max: number) {let str = ""let arr =["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",'`', '~', '@', '#', '$', '%', '^', '&','*', '(', ')', '-', '_', '=', '+', '[','{', '}', ']', '|', ';', ':', ',', '<', '.', '>', '?']let range = Math.round(Math.random() * (max - min)) + minfor (let i = 0; i < range; i++) {let pos = Math.round(Math.random() * (arr.length - 1));str += arr[pos]}return str
}
校验
1. 判断生成密码不可以连续或者倒叙方法
// 判断生成密码不可以连续或者倒叙adjoinVerfy(str) {let flag = false; // 默认不连贯for (let i = 0; i < str.length; i++) {// 如果是第一位 只判断和后一位的不判断前面的会报错if (i != 0) {if (typeof Number(str[i]) === "Number") {if (parseInt(str[i]) + 1 == parseInt(str[i - 1]) ||parseInt(str[i]) - 1 == parseInt(str[i - 1])) {flag = true;break;}} else {if (str[i].charCodeAt() - str[i - 1].charCodeAt() == 1 ||str[i].charCodeAt() - str[i - 1].charCodeAt() == -1) {flag = true;break;}}}}return flag;}
2. 校验
testPassWorld() {this.password = randomPassword(8, 16);console.log(this.password);let exp = /.*(?=.{8,16})(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[`~!@#$%^&*?\\(\\)\\-_=+\\[\\{\\}\\]|;:<.>,]).*$/;// 判断生成的随机密码中是否包含大小写字母和数字字母if (exp.test(this.password)) {// 判断有没有倒叙或者正序相连的数字或者字母let flag = this.adjoinVerfy(this.password);if (flag) {this.testPassWorld();}} else {this.testPassWorld();}},
这篇关于生成包括大小写字母数字以及符号的密码且不能有连续或者倒叙以及其校验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!