[JS] 비밀번호 유효성, 글자 수 제한, 정규식, search함수, test함수, 영문자 숫자 특수문자 2개 이상 혼합 비밀번호

2022. 12. 27. 09:53공부/JS,CSS

비밀번호 유효성 체크 함수 만들기

  • Search 함수 : 조건 문자열이 검색되는 위치를 반환. 없으면 -1을 반환.
  • test함수 : 정규표현식을 만족하는지 체크. True/False 반환.
pwdValidator = function(pwd){
    var regx1 = /^[^ ]{9,20}%/; //9자리 이상 20자리 이하 체크
    var eng = pwd.search(/[a-zA-Z]/); //영문자 포함 체크
    var num = pwd.search(/[0-9]/);	//숫자 포함 체크
    var spec = pwd.search(/[\[\]\/?;:|\)*~!^\-_+@\#$%&\\\=\(]/gi); //특수문자 포함 체크
    var quot = pwd.search(/\"|\'|\{|\}|\.|\,|\`/);	// " ' { } . , ` 포함 체크
    
    var msg = "비밀번호는 영문자,숫자,특수문자 2개 이상을 혼합하여 9자 이상 20자 이하로 입력해주시기 바랍니다.";
	
    if(!regx1.test(pwd)){	//글자 수 체크
    	alert(msg);
        $("#pwd").focus(); //비밀번호 입력칸으로 커서 위치
        return false;
    }
    
    // 2개 이상 혼합 아니거나 
    // " ' { } . , ` 포함하는 경우 
    // return false; 처리
    if((eng<0 && num<0) || (eng<0 && spec<0) || (num<0 && spec<0) || (quot>0)){
    	alert(msg);
        $("#pwd").focus();
        return false;
    }
}