passwordValidation.js

Codewars 알고리즘 풀이


Problem

  • You need to write regex that will validate a password to make sure it meets the following criteria:
    • 비밀번호가 다음 기준을 충족하는지 확인하는 정규식을 작성한다.

At least six characters long (6자 이상)

Contains a lowercase letter (소문자 포함)

Contains an uppercase letter (대문자 포함)

Contains a number (숫자 포함)

  • Valid passwords will only be alphanumeric characters.
    • 유효한 비밀번호는 영숫자 문자이다.



Solution 01

function passwordValidation(password) {
  return password.length >= 6 &&
    /[a-z]/.test(password) &&
    /[A-Z]/.test(password) &&
    /[0-9]/.test(password) &&
    /^[a-zA-Z0-9]+$/.test(password);
}

passwordValidation('password');     // false
passwordValidation('Password');     // false
passwordValidation('12345678');     // false
passwordValidation('Password123');  // true
passwordValidation('password123');  // false
passwordValidation('Password12#');  // false


Solution 02

function passwordValidation(password) {
  return /^[a-zA-Z0-9]{6,}$/.test(password) &&
    /[a-z]+/.test(password) &&
    /[A-Z]+/.test(password) &&
    /[0-9]+/.test(password);
}

passwordValidation('password');     // false
passwordValidation('Password');     // false
passwordValidation('12345678');     // false
passwordValidation('Password123');  // true
passwordValidation('password123');  // false
passwordValidation('Password12#');  // false


Solution 03

function passwordValidation(password) {
  const regExp = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]{6,}$/;
  return regExp.test(password);
}

passwordValidation('password');     // false
passwordValidation('Password');     // false
passwordValidation('12345678');     // false
passwordValidation('Password123');  // true
passwordValidation('password123');  // false
passwordValidation('Password12#');  // false


Solution 04

function passwordValidation(password) {
  const regExp = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])\w{6,}$/;
  return regExp.test(password);
}

passwordValidation('password');     // false
passwordValidation('Password');     // false
passwordValidation('12345678');     // false
passwordValidation('Password123');  // true
passwordValidation('password123');  // false
passwordValidation('Password12#');  // false