Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การตรวจสอบความถูกต้องของรหัสผ่านด้วย JavaScript

เราต้องเขียนฟังก์ชัน JavaScript ที่รับสตริงรหัสผ่านเป็นอาร์กิวเมนต์เดียว ฟังก์ชันต้องคืนค่า true ถ้ารหัสผ่าน:

  • ยาวอย่างน้อย 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