Dev 개발 스터디 (동면 중)/Dev_log+Study 😶‍🌫️

// 비밀번호 유효성 검사 함수

에이미쉬 2023. 4. 10. 15:56
728x90
반응형
function clickPwAdv() {
  var memberPwLength = document.getElementById("memberPw").value.length;
  if (memberPwLength > 0) {
    console.log("# memberPwLength: " + memberPwLength);
    checkPwAdv.innerHTML =
      "* 영문/숫자/특수문자 2가지 이상 조합 (8~20자)" +
      "<br>" +
      "* 3개 이상 연속되거나 동일한 문자/숫자 제외" +
      "<br>" +
      "* 아이디(이메일) 제외";
  }
}



  var checkPwExp = /^[a-zA-Z0-9]{8,16}$/i;
  var checkNumber = memberPwValue.search(/[0-9]/g);
  var checkEnglish = memberPwValue.search(/[a-z]/gi);
  if (checkPwExp.test(memberPwValue) == true) {
    console.log("# 출력5: 비밀번호가 입력되었습니다.");
    checkPwAdv.innerHTML = "* 비밀번호가 입력되었습니다.";
    $(this).next(".memberName").focus();
    return true;
  }
  if (checkPwExp.test(memberPwValue)) {
    //비밀번호 형식 안 맞으면 출력1
    //alert("숫자와 영문자 조합으로 8~16자리를 사용해야 합니다.");
    console.log("# checkPassword");
    console.log("# 출력1:");
    console.log("숫자와 영문자 조합으로 8~16자리를 사용해야 합니다.");
    checkPwAdv.innerHTML =
      "* 숫자와 영문자 조합으로 8~16자리를 사용해야 합니다.";
    return false;
  }
  if (checkNumber < 0 || checkEnglish < 0) {
    //비밀번호 형식 안 맞으면 출력2
    //alert("숫자와 영문자를 혼용하여야 합니다.");
    console.log("# checkPassword");
    console.log("# 출력2:");
    console.log("숫자와 영문자를 혼용하여야 합니다.");
    checkPwAdv.innerHTML = "* 숫자와 영문자를 혼용하여야 합니다.";
    return false;
  }
  if (/(\w)\1\1\1/.test(memberPwValue)) {
    //비밀번호 형식 안 맞으면 출력3
    //alert("000처럼 같은 문자를 3번 이상 사용하실 수 없습니다.");
    console.log("# checkPassword");
    console.log("# 출력3:");
    console.log("000처럼 같은 문자를 3번 이상 사용하실 수 없습니다.");
    checkPwAdv.innerHTML =
      "* 000처럼 같은 문자를 3번 이상 사용하실 수 없습니다.";
    return false;
  } else if (memberPwValue.search(memberEmailValue) > -1) {
    //비밀번호 형식 안 맞으면 출력4
    //alert("비밀번호에 아이디가 포함되었습니다.");
    console.log("# checkPassword");
    console.log("# 출력4:");
    console.log("비밀번호에 아이디가 포함되었습니다.");
    checkPwAdv.innerHTML = "* 비밀번호에 아이디가 포함되었습니다.";
    return false;
  } else if (memberPwValue < 8) {
    checkPwAdv.innerHTML = "* 잘쓰라고 잘";
    return false;
  }
728x90
반응형