随机⽣成8-20位包含⼤⼩写字母、数字,特殊字符可有可⽆和正则校验const createPassword = (min, max) => {
// 可以⽣成随机密码的相关数组
const num = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
const english = ['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 ENGLISH = ['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 config = at(english).concat(ENGLISH);
// 随机从数组中抽出⼀个数值
const getOne = arr => arr[Math.floor(Math.random() * arr.length)];
// 先放⼊⼀个必须存在的
const arr = [];
arr.push(getOne(num));
字符串函数模拟注册arr.push(getOne(english));
arr.push(getOne(ENGLISH));
// 获取需要⽣成的长度
const len = min + Math.floor(Math.random() * (max - min + 1));
for (let i = 4; i < len; i++) {
// 从数组⾥⾯抽出⼀个
arr.push(config[Math.floor(Math.random() * config.length)]);
}
// 乱序
const newArr = [];
for (let j = 0; j < len; j++) {
newArr.push(arr.splice(Math.random() * arr.length, 1)[0]);
}
return newArr.join('');
};
// ⽣成随机密码
const randomPassword = createPassword(8, 20);
2.8~20 位同时包含数字和⼤⼩写字母,符号仅限 !@#$%^*()正则校验
const checkPassword = password => {
// 8~20 位同时包含数字和⼤⼩写字母,符号仅限 !@#$%^*()
const pattern = /(?![0-9A-Z]+$)(?![0-9a-z]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,20}$/;
if (st(password)
|| /(?![0-9A-Z!@#$%^*()]+$)(?![0-9a-z!@#$%^*()]+$)(?![a-zA-Z!@#$%^*()]+$)[0-9A-Za-z!@#$%^*()]{8,20}$/.test(password)) {
return true;
}
return false;
};

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。