Viết hàm kiểm tra mật khẩu hợp lệ: độ dài 6-20, có ít nhất 1 chữ số, 1 chữ thường, 1 chữ hoa, 1 ký tự đặc biệt (!@#$%^&*()-+).
Ví dụ: '12Aatab@' → true, '1234ASD+' → false (thiếu chữ thường).
Ví dụ
const valid = '12Aatab@';
const invalid = '1234ASD+';
const validatePassword = (str = '') => {
const { length: l } = str;
if (l < 6 || l > 20) return false;
const special = '!@#$%^&*()-+';
const alpha = 'abcdefghijklmnopqrstuvwxyz';
const nums = '0123456789';
const check = (c, set) => set.includes(c);
const arr = str.split('');
return arr.some(c => check(c, special)) &&
arr.some(c => check(c, alpha)) &&
arr.some(c => check(c, alpha.toUpperCase())) &&
arr.some(c => check(c, nums));
};
console.log(validatePassword(valid));
console.log(validatePassword(invalid));
Kết quả
true false