DBILITY

xplatform 비밀번호 유효성 체크 본문

front-end & ui/xplatform

xplatform 비밀번호 유효성 체크

DBILITY 2019. 9. 30. 15:44
반응형

xplatform 9.2에서 작성되었습니다.

비밀번호 자리수, 문자,숫자,특수문자 혼합, 아이디 포함유무, 동일문자사용(3회), 연속된 문자열(3회) 체크

어차피 자바스크립트랑 비슷하고, 테스트는 제대로 못함.

function validPassword(userId:String,password:String, passwordRe:String) {
	
	if(password != passwordRe){
		alert("입력하신 비밀번호와 비밀번호 확인이 일치하지 않습니다.");
		return false;
	}
	
	if(password.length < 8 || password.length > 12) {
		alert("비밀번호는 영문자,숫자,특수문자의 조합으로 8자 이상 12자 이하여야 합니다.");
		return false;
	}
	
	if(!password.match(/([a-zA-Z0-9].*[!,@,#,$,%,^,&,*,?,_,~])|([!,@,#,$,%,^,&,*,?,_,~].*[a-zA-Z0-9])/)) {
		alert("비밀번호는 영문자,숫자,특수문자의 조합이어야 합니다.");
		return false;
	}
/*
	if(!password.match(/([a-zA-Z].*[0-9])|([0-9].*[a-zA-Z])/)) {
		alert("비밀번호는 영문자,숫자의 조합이어야 합니다.");
		return false;
	}
*/	
/*
	if(!password.match(/[a-zA-Z].*[0-9]/)) {
		alert("비밀번호는 영문자+숫자의 조합이어야 합니다.");
		return false;
	}
*/
	if(password.indexOf(userId)>-1) {
		alert("비밀번호에 아이디를 포함할 수 없습니다.");
		return false;
	}
	
	var sameChar = 0;
	var continuePass01 = 0;
	var continuePass02 = 0;
	
	var passChar0;
	var passChar1;
	var passChar2;
	
	for(var i=0;i <password.length;i++){
		
		passChar0 = password.charAt(i);
		passChar1 = password.charAt(i+1);
		passChar2 = password.charAt(i+2);

		if(passChar0 == passChar1){
			sameChar=sameChar+1;
		}
		
		if(sameChar > 2){
			alert("동일문자를 3번이상 사용할 수 없습니다.");
			return false;
		}
		
		if(passChar0.charCodeAt(0)-passChar1.charCodeAt(0)==1 && passChar1.charCodeAt(0)-passChar2.charCodeAt(0)==1) {
			continuePass01=continuePass01+1;
		}
		
		if(passChar0.charCodeAt(0)-passChar1.charCodeAt(0)==-1 && passChar1.charCodeAt(0)-passChar2.charCodeAt(0)==-1) {
			continuePass02=continuePass02+1;
		}
		
		if(continuePass01>1||continuePass02>1){
			alert("연속된 문자를 3자 이상 사용할 수 없습니다.");
			return false;
		}
	}

	return true;
}

 

passValid.7z
다운로드

 

 

 

반응형
Comments