본문 바로가기
Language(언어)/JavaScript

JavaScript 비밀번호(패스워드) 유효성 체크 (문자, 숫자, 특수문자의 조합으로 6~16자리)

by 대학교닷컴 2014. 4. 24.


<html>
 <head>
 <title>비밀번호(패스워드) 유효성 체크 (문자, 숫자, 특수문자의 조합으로 6~16자리)</title>
 <script type="text/javascript">
 function post_check()
 {

   // 비밀번호(패스워드) 유효성 체크 (문자, 숫자, 특수문자의 조합으로 6~16자리)
   var ObjUserPassword = document.wform.pwd;
 
   //if(ObjUserPassword.value != objUserPasswordRe.value)
   //{
   //  alert("입력하신 비밀번호와 비밀번호확인이 일치하지 않습니다");
   //  return false;
   //}
 
   if(ObjUserPassword.value.length<6) {
     alert("비밀번호는 영문,숫자,특수문자(!@$%^&* 만 허용)를 사용하여 6~16자까지, 영문은 대소문자를 구분합니다.");
     return false;
   }
 
   if(!ObjUserPassword.value.match(/([a-zA-Z0-9].*[!,@,#,$,%,^,&,*,?,_,~])|([!,@,#,$,%,^,&,*,?,_,~].*[a-zA-Z0-9])/)) {
     alert("비밀번호는 영문,숫자,특수문자(!@$%^&* 만 허용)를 사용하여 6~16자까지, 영문은 대소문자를 구분합니다.");
     return false;
   }
 
   //if(ObjUserID.value.indexOf(ObjUserPassword) > -1) {
   //  alert("비밀번호에 아이디를 사용할 수 없습니다.");
   //  return false;
   //}
 
   var SamePass_0 = 0; //동일문자 카운트
  var SamePass_1 = 0; //연속성(+) 카운드
  var SamePass_2 = 0; //연속성(-) 카운드
 
   for(var i=0; i < ObjUserPassword.value.length; i++) {
     var chr_pass_0 = ObjUserPassword.value.charAt(i);
     var chr_pass_1 = ObjUserPassword.value.charAt(i+1);
    
     //동일문자 카운트
    if(chr_pass_0 == chr_pass_1) {
       SamePass_0 = SamePass_0 + 1
     }
    
     var chr_pass_2 = ObjUserPassword.value.charAt(i+2);

     //연속성(+) 카운드
    if(chr_pass_0.charCodeAt(0) - chr_pass_1.charCodeAt(0) == 1 && chr_pass_1.charCodeAt(0) - chr_pass_2.charCodeAt(0) == 1) {
       SamePass_1 = SamePass_1 + 1
     }
    
     //연속성(-) 카운드
    if(chr_pass_0.charCodeAt(0) - chr_pass_1.charCodeAt(0) == -1 && chr_pass_1.charCodeAt(0) - chr_pass_2.charCodeAt(0) == -1) {
       SamePass_2 = SamePass_2 + 1
     }
   }
   if(SamePass_0 > 1) {
     alert("동일문자를 3번 이상 사용할 수 없습니다.");
     return false;
   }
 
   if(SamePass_1 > 1 || SamePass_2 > 1 ) {
     alert("연속된 문자열(123 또는 321, abc, cba 등)을\n 3자 이상 사용 할 수 없습니다.");
     return false;
   }
   return true;
 }
 </script>
 </head>

 <body>
 <form name="wform" method="post" onSubmit="return post_check();" >
비밀번호 <input type="password" id="pwd" name="pwd" /><br>
 <input type="submit" value="글쓰기" />
 </form>


참고자료
http://cafe.daum.net/PHP/2aVK/11?docid=NO142aVK1120021105213837
http://blog.naver.com/PostView.nhn?blogId=jihoon0083&logNo=104114413
http://blog.naver.com/PostView.nhn?blogId=fallove&logNo=70068794745

[ 출처 : 해피정닷컴 http://www.happyjung.com/bbs/board.php?bo_table=lecture&wr_id=1435 ]

댓글