需求:点击按钮,生产随机密码,同时对用户输入的密码进行规则校验
规则:10-20位密码且必须包含至少一个字母、数字、(!@#$%^&*()_+)特殊字符
- 规则校验:
调用方法:validatePassword(value) 为true则校验通过
// 校验密码的方法
export function validatePassword(password) {
// const regex = /^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%^*?&#])[A-Za-z\d@$!%*?&]{10,20}$/;
const regex = /^(?=.*[A-Za-z])(?=.*\d)(?=.*[!@#$%^&*()_+]).{10,20}$/;
return regex.test(password);
}
- 生成随机密码
调用方法:passData.value.password = generateRandomString(Math.floor(Math.random() *11) + 10); 得到10-20位随机密码
// 生成随机字符串的方法
export function generateRandomString(length) {
const characters =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()_+";
let result = "";
for (let i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * characters.length));
}
while (!validatePassword(result)) {
result = generateRandomString(Math.floor(Math.random() * 11) + 10);
}
return result;
}