하은양 믿음군 효실맘 호홍홍집s

비밀번호 유효성 체크 본문

가벼운 배움/javascript

비밀번호 유효성 체크

호홍홍집 2016. 2. 16. 12:15

참조 : http://devjournal.tistory.com/3

function passwordCheck() {
        
 var userID = document.getElementById("userID").value;
 var password = document.getElementById("password").value;
 var newPassword1 = document.getElementById("newPassword1").value;
 var newPassword2 = document.getElementById("newPassword2").value;
 
 // 재입력 일치 여부
 if (newPassword1 != newPassword2) {
  alert("입력한 두 개의 비밀번호가 서로  일치하지 않습니다.");
  return false;
 }
 
 // 길이
 if(!/^[a-zA-Z0-9!@#$%^&*()?_~]{6,15}$/.test(newPassword1))
 {
  alert("비밀번호는 숫자, 영문, 특수문자 조합으로 6~15자리를 사용해야 합니다.");
  return false;
 }
 
 // 영문, 숫자, 특수문자 2종 이상 혼용
 var chk = 0;
 if(newPassword1.search(/[0-9]/g) != -1 ) chk ++;
 if(newPassword1.search(/[a-z]/ig)  != -1 ) chk ++;
 if(newPassword1.search(/[!@#$%^&*()?_~]/g)  != -1  ) chk ++;
 if(chk < 2)
 {
  alert("비밀번호는 숫자, 영문, 특수문자를 두가지이상 혼용하여야 합니다.");
  return false;
 }
 
 // 동일한 문자/숫자 4이상, 연속된 문자
 if(/(\w)\1\1\1/.test(newPassword1) || isContinuedValue(newPassword1))
 {
  alert("비밀번호에 4자 이상의 연속 또는 반복 문자 및 숫자를 사용하실 수 없습니다.");
  return false;
 }
 
 // 아이디 포함 여부
 if(newPassword1.search(userID)>-1)
 {
  alert("ID가 포함된 비밀번호는 사용하실 수 없습니다.");
  return false;
 }
 
 // 기존 비밀번호와 새 비밀번호 일치 여부
 if (password == newPassword2) {
  alert("기존 비밀본호와 새 비밀번호가 일치합니다.");
  return false;
 }
 
 alert("테스트 통과!");
 
}

function isContinuedValue(value) {
 console.log("value = " + value);
 var intCnt1 = 0;
 var intCnt2 = 0;
 var temp0 = "";
 var temp1 = "";
 var temp2 = "";
 var temp3 = "";

 for (var i = 0; i < value.length-3; i++) {
  console.log("=========================");
  temp0 = value.charAt(i);
  temp1 = value.charAt(i + 1);
  temp2 = value.charAt(i + 2);
  temp3 = value.charAt(i + 3);

  console.log(temp0)
  console.log(temp1)
  console.log(temp2)
  console.log(temp3)

  if (temp0.charCodeAt(0) - temp1.charCodeAt(0) == 1
   && temp1.charCodeAt(0) - temp2.charCodeAt(0) == 1
   && temp2.charCodeAt(0) - temp3.charCodeAt(0) == 1) {
  intCnt1 = intCnt1 + 1;
  }

  if (temp0.charCodeAt(0) - temp1.charCodeAt(0) == -1
   && temp1.charCodeAt(0) - temp2.charCodeAt(0) == -1
   && temp2.charCodeAt(0) - temp3.charCodeAt(0) == -1) {
  intCnt2 = intCnt2 + 1;
  }
  console.log("=========================");
 }

 console.log(intCnt1 > 0 || intCnt2 > 0);
 return (intCnt1 > 0 || intCnt2 > 0);
}

참조 : http://gongam100.tistory.com/24

1. 영문, 숫자 혼합하여 6~20자리 이내

function chkPwd(str){

 var reg_pwd = /^.*(?=.{6,20})(?=.*[0-9])(?=.*[a-zA-Z]).*$/;

 if(!reg_pwd.test(str)){

  return false;

 }

 return true;
}

if(!chkPwd( $.trim($('#mpassword').val()))){

 alert('비밀번호를 확인하세요.₩n(영문,숫자를 혼합하여 6~20자 이내)');   

 $('#mpassword').val('');

 $('#mpassword').focus(); return false;

}

------------------------------------------------------

2. 영문,숫자,특수문자 혼합하여 8자리~20자리 이내.(비밀번호 표준)

function chkPwd(str){

 var pw = str;

 var num = pw.search(/[0-9]/g);

 var eng = pw.search(/[a-z]/ig);

 var spe = pw.search(/[`~!@@#$%^&*|₩₩₩'₩";:₩/?]/gi);

 

 if(pw.length < 8 || pw.length > 20){

  alert("8자리 ~ 20자리 이내로 입력해주세요.");
  return false;

 }

 if(pw.search(/₩s/) != -1){

  alert("비밀번호는 공백업이 입력해주세요.");
  return false;

 }
 if(num < 0 || eng < 0 || spe < 0 ){
  alert("영문,숫자, 특수문자를 혼합하여 입력해주세요.");
  return false;
 }
 
 return true;
}

if(!chkPwd( $.trim($('#mpassword').val()))){

   $('#mpassword').val('');

   $('#mpassword').focus();

   return false;

}

------------------------------------------------------

3. 영문,숫자,특수문자 중 2가지 혼합하여 10자리~20자리 이내.(비밀번호 표준)

function chkPwd(str){

 var pw = str;
 var num = pw.search(/[0-9]/g);
 var eng = pw.search(/[a-z]/ig);
 var spe = pw.search(/[`~!@@#$%^&*|₩₩₩'₩";:₩/?]/gi);

 if(pw.length < 10 || pw.length > 20){

  alert("10자리 ~ 20자리 이내로 입력해주세요.");
  return false;
 }

 if(pw.search(/₩s/) != -1){

  alert("비밀번호는 공백업이 입력해주세요.");
  return false;
 }

 if( (num < 0 && eng < 0) || (eng < 0 && spe < 0) || (spe < 0 && num < 0) ){

  alert("영문,숫자, 특수문자 중 2가지 이상을 혼합하여 입력해주세요.");
  return false;
 }

 return true;
}

if(!chkPwd( $.trim($('#mpassword').val()))){

 $('#mpassword').val('');
 $('#mpassword').focus();
 return false;
}