เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับสตริงรหัสผ่านเป็นอาร์กิวเมนต์แรกและตัวเดียว
จากนั้นฟังก์ชันควรคืนค่า จริง หากสตริงรหัสผ่าน −
-
มีความยาวอย่างน้อย 6 อักขระและยาวไม่เกิน 20 อักขระ
-
มีอย่างน้อยหนึ่งหลัก
-
มีอักขระภาษาอังกฤษตัวพิมพ์เล็กอย่างน้อยหนึ่งตัว
-
มีอักขระภาษาอังกฤษตัวพิมพ์ใหญ่อย่างน้อยหนึ่งตัว
-
มีอักขระพิเศษอย่างน้อยหนึ่งตัว อักขระพิเศษคือ:!@#$%^&*()-+
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const valid = '12Aatab@';
const invalid = '1234ASD+';
const validatePassword = (str = '') => {
const { length: l } = str;
const strArr = str.split('');
if(l < 6 || l > 20){
return false;
};
const specialCharacters = '!@#$%^&*()-+';
const alphabets = 'abcdefghijklmnopqrstuvwxyz';
const numbers = '0123456789';
const checkWith = (char, set) => set.includes(char);
const containsSpecialCharacter = strArr.some(char => checkWith(char, specialCharacters));
const containsLowercase = strArr.some(char => checkWith(char, alphabets));
const containsUppercase = strArr.some(char => checkWith(char, alphabets.toUpperCase()));
const containsNumber = strArr.some(char => checkWith(char, numbers));
return containsSpecialCharacter && containsLowercase && containsUppercase && containsNumber;
};
console.log(validatePassword(valid));
console.log(validatePassword(invalid)); ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
true false