비밀번호, 패스워드 생성규칙 체크 > JavaScript

본문 바로가기

사이트 내 전체검색

뒤로가기 JavaScript

비밀번호, 패스워드 생성규칙 체크

페이지 정보

작성자 최고관리자 작성일 21-02-10 17:35 조회 7,270 댓글 0

본문

<script>
 //문자체크
function passwdCheckChar(obj)
 {
        var ret;
        var j = 0;
        var alphabetChar = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        for (var i = 0; i < obj.length; i++) {
                var substr = obj.substring(i,i+1);
                if (alphabetChar.indexOf(substr) < 0) {
                        //영문자가 아닌값
                }else{
                        j = j + 1;        //영문자
                }
        }
        if (j == obj.length) {
                return false;        //영문자만 있는경우
        }else{
                return true;        //영문자와 다른 문자가 있는경우
        }

 }

 //숫자체크
function passwdCheckNum(obj){
        var ret;
        for (var i = 0; i < obj.length; i++) {
                ret = obj.charCodeAt(i);
                if (!((ret > 47) && (ret < 58))) {
                        return true;
                }
        }
        return false;
 }

 function chkPassword(pwd)
 {
        var chnum = 0;
        var obj = pwd.value;

        //비밀번호는 영문자, 숫자, 특수문자로만 구성, 6 ~ 15 자리만 허용
        var pass_char = /[^a-zA-Z0-9!\"#$%&'()*+,-./:;<>=?@[]\\^_`{|}~]/;
        if (pass_char.test(obj) || obj.length < 6 || obj.length > 15)
        {
                    document.getElementById("paswdview1").style.display = "";
                    document.getElementById("paswdview2").style.display = "none";
                    document.getElementById("paswdview3").style.display = "none";
                    document.getElementById("paswdview4").style.display = "none";
                    document.getElementById("paswdview").style.display = "none";
                    chnum = 1;
        }

        //연속 4개 같은 것 생성금지
        for (var i=0; i<=obj.length-4; i++)
        {
                if (obj.charAt(i)==obj.charAt(i+1) && obj.charAt(i)==obj.charAt(i+2) && obj.charAt(i)==obj.charAt(i+3))
                {
                    document.getElementById("paswdview1").style.display = "none";
                    document.getElementById("paswdview2").style.display = "";
                    document.getElementById("paswdview3").style.display = "none";
                    document.getElementById("paswdview4").style.display = "none";
                    document.getElementById("paswdview").style.display = "none";
                    chnum = 2;
                    break;
              return false;
                }
        }

        //연속되게 이루어진 패스워드 생성 금지
        strNum = "01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        var tmpStr;
        for(var i=0; i<=strNum.length-4; i++){
                tmpStr=strNum.substring(i,i+4);
                if (obj.indexOf(tmpStr)>=0){
                    document.getElementById("paswdview1").style.display = "none";
                    document.getElementById("paswdview2").style.display = "none";
                    document.getElementById("paswdview3").style.display = "";
                    document.getElementById("paswdview4").style.display = "none";
                    document.getElementById("paswdview").style.display = "none";
                    chnum = 3;
                }
        }

        //영문자, 숫자혼합
        if (obj.length >= 6 && !(passwdCheckNum(obj) && passwdCheckChar(obj)))
        {
                    document.getElementById("paswdview1").style.display = "none";
                    document.getElementById("paswdview2").style.display = "none";
                    document.getElementById("paswdview3").style.display = "none";
                    document.getElementById("paswdview4").style.display = "";
                    document.getElementById("paswdview").style.display = "none";
                    chnum = 4;
        }

        if(chnum == 0)
        {
                    document.getElementById("paswdview1").style.display = "none";
                    document.getElementById("paswdview2").style.display = "none";
                    document.getElementById("paswdview3").style.display = "none";
                    document.getElementById("paswdview4").style.display = "none";
                    document.getElementById("paswdview").style.display = "";
                    //비밀번호 가능
                  document.getElementById("passwdchYn").value = "Y";
        }
 }

 </script>

 <!--
<input type="password" name="passwd" onkeyup="chkPassword(this);"><br>
 <input type="hidden" name="passwdchYn" value="N">
 <div>
        <div style="display:none;" id="paswdview1">비밀번호는 영문자, 숫자, 특수문자의 6 ~ 15 자리만 가능합니다.</div>
        <div style="display:none;" id="paswdview2">동일한 문자나 숫자로 연속되는 비밀번호는 사용하실 수 없습니다.</div>
        <div style="display:none;" id="paswdview3">연속 된 숫자나 문자로 이루어진 비밀번호는 사용하실 수 없습니다.</div>
        <div style="display:none;" id="paswdview4">비밀번호는 영문자와 숫자의 혼합이어야 합니다.</div>
        <div style="display:none;" id="paswdview">사용가능한 비밀번호입니다.</div>
 </div>
 //-->

댓글목록 0

등록된 댓글이 없습니다.

Copyright © beautipia.co.kr. All rights reserved.

contact : webmaster@beautipia.co.kr

PC 버전으로 보기