ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA 자바 비밀번호 정규식 문자+특수문자+숫자 포함 9자리만 가능
    Web Programming 2023. 2. 15. 00:09
    728x90
    반응형
    <%@ page import = "java.util.regex.Matcher"%>
    <%@ page import = "java.util.regex.Pattern"%>
    
    if(passwordParam.equals("changePwToNew")) {
    	
    	boolean sameCharCheck = false;
    	String checkStr = "";
    	String returnMsg = "";
    	
    	// 비밀번호 포맷 확인(영문, 특수문자, 숫자 포함 9자 이상 가능)
    	Pattern passPattern = Pattern.compile("^(?=.*[A-Za-z])(?=.*\\d)(?=.*[~!@#$%^*_+|<>?:{}])[A-Za-z\\d~!@#$%^*_+|<>?:{}]{9,}$");
    	Matcher passMatcher = passPattern.matcher(password);
    	
    	// 연속된 문자 숫자4자리 포함 체크
    	int o = 0;
    	int d = 0;
    	int p = 0;
    	int n = 0;
    	int limit = 4;
    	
        for (int i = 0; i < password.length(); i++) {
            char tmpVal = password.charAt(i);
            if (i > 0 && (p = o - tmpVal) > -2 && (n = p == d ? n + 1 : 0) > limit -3 ){
            	sameCharCheck = true; // 연속 있음
            	/* checkStr = "있음"; */
            }
            d = p;
            o = tmpVal;
        }
    	
    	if(password != null && password.length() < 9){
    		
    		returnStatus = "비밀번호는 최소 9자리 이상 영문, 숫자, 특수문자 조합으로 !!";
    		
    	}else if(!passMatcher.matches()){
    		
    		returnStatus = "비밀번호는 최소 9자리 이상 영문, 숫자, 특수문자 조합으로 !!";
    		
    	}else if(sameCharCheck){
    		
    		returnStatus = "비밀번호에 연속된 숫자와 문자는 변경 불가 !!";
    		
    	}else{
    	
    		// 업데이트 쿼리 작성 부분
    		returnStatus = "변경 성공 !!";
    	}
    	%>
    	<script type="text/javascript">
    	alert('<%=returnStatus%>');
    	location.href = '리턴 할 주소';
    	</script>
    	<%	
    		
    }

    정규식 문자+특수문자+숫자 포함 9자리만 조건과 abcd, 1234 와

    같은 연속된 문자 4개 입력시 변경 불가하게 만들기 !!

    Pattern.compile 에 정규식 넣어주고

    passPattern.matcher 매치 시키고

    passMatcher.matches() 정규식에 부합하면 true 리턴 !!

    728x90
    반응형

    'Web Programming' 카테고리의 다른 글

    JAVA 자바 중첩 for문 예시  (0) 2023.02.15
    자바 엑셀 다중시트 업로드 poi 4.1.2  (0) 2023.02.15
    문자열 정규식 사이트 두곳  (0) 2023.02.15
    JAVA 자바 api 링크  (0) 2023.02.15
    JAVA 자바 배열for문 확장for문  (0) 2023.02.15
Designed by Tistory.