JQUERY
jquery 암호체크 루틴
강준한
2015. 4. 1. 18:07
function chkPassWord(id,pwd){
//함수를 넘길때에 아이디랑... 패스워드를 넘겨 줘야 합니다.. 오브젝트로 하셔도되구(저는그냥ㅋ)
if(pwd.length < 8) { //우선 길이체크 부터 합니다 8자리 이하는 받고 싶지도 않다는 겁니다. ㅎㅎ
alert("비밀번호는 문자, 숫자, 특수문자의 조합 8~12자리이상으로 입력해주세요."); //오류 줍니다
$("#pwd1").val("");
$("#pwd2").val("");
$("#pwd1").focus();
return false; //참 편리하라고 다시 입력할수 있게 깨끗하게 정리 해주구요 

}
if(!pwd.match(/^.*(?=^.{8,12}$)(?=.*\d)(?=.*[a-zA-Z])(?=.*[!@#$%^&+=]).*$/)) { //정규식입니다 이건 아직도 어렵지만
//(?=^.{8,12}$) = 8자에서 12자 체크
//(?=.*\d) = 숫자포함
//(?=.*[a-zA-Z]) = 알파벳 대소문자 포함
//(?=.*[!@#$%^&+=]).*$/) = 특수문자 포함입니다... 이건 때때로 그냥 필요한것만 갔다쓰는걸로 하죠
//못외웁니다 ㅠㅠ 저는 암기 싫어합니다;
alert("비밀번호는 문자, 숫자, 특수문자의 조합 8~12자리이상으로 입력해주세요.");
$("#pwd1").val("");
$("#pwd2").val("");
$("#pwd1").focus();
return false; //정리
}
if(pwd.indexOf(id) > -1) { //중요한거죠... 아이디를 비번에 사용하면 안됩니다!!!
alert("비밀번호에 아이디를 사용할 수 없습니다.");
$("#pwd1").val("");
$("#pwd2").val("");
$("#pwd1").focus();
return false; //정리
}
var SamePass_0 = 0; //동일문자 카운트
var SamePass_1 = 0; //연속성(+) 카운드
var SamePass_2 = 0; //연속성(-) 카운드
var chr_pass_0;
var chr_pass_1;
for(var i=0; i < pwd.length; i++) {
chr_pass_0 = pwd.charAt(i);
chr_pass_1 = pwd.charAt(i+1);
//동일문자 카운트
if(chr_pass_0 == chr_pass_1) {
SamePass_0 = SamePass_0 + 1;
} // if
//연속성(+) 카운드
if(chr_pass_0.charCodeAt(0) - chr_pass_1.charCodeAt(0) == 1) {
SamePass_1 = SamePass_1 + 1;
} // if
//연속성(-) 카운드
if(chr_pass_0.charCodeAt(0) - chr_pass_1.charCodeAt(0) == -1) {
SamePass_2 = SamePass_2 + 1;
}
} // for
if(SamePass_0 > 1) {
alert("동일문자를 3번 이상 사용할 수 없습니다.");
$("#pwd1").val("");
$("#pwd2").val("");
$("#pwd1").focus();
return false;
} // if
if(SamePass_1 > 1 || SamePass_2 > 1 ) {
alert("연속된 문자열(123 또는 321, abc, cba 등)을\n 3자 이상 사용 할 수 없습니다.");
$("#pwd1").val("");
$("#pwd2").val("");
$("#pwd1").focus();
return false;
} // if
return true;
} // 마지막 동일성 카운트는 문자코드를 케릭터엣 으로 바꿔서 나온 숫자로 동일성과,
//연속성을 체크해서 카운트 가 올라가면
// 동일문자가 안받는걸로 되겟죠? ㅎㅎ

반응형