비밀번호(패스워드) 유효성 체크 (문자, 숫자, 특수문자의 조합으로 6~16자리)
페이지 정보
본문
<script type="text/javascript">
function post_check() {
// 비밀번호(패스워드) 유효성 체크 (문자, 숫자, 특수문자의 조합으로 6~16자리)
var ObjUserPassword = document.wform.pwd;
//if(ObjUserPassword.value != objUserPasswordRe.value)
//{
// alert("입력하신 비밀번호와 비밀번호확인이 일치하지 않습니다");
// return false;
//}
if(ObjUserPassword.value.length<6) {
alert("비밀번호는 영문,숫자,특수문자(!@$%^&* 만 허용)를 사용하여 6~16자까지, 영문은 대소문자를 구분합니다.");
return false;
}
if(!ObjUserPassword.value.match(/([a-zA-Z0-9].*[!,@,#,$,%,^,&,*,?,_,~])|([!,@,#,$,%,^,&,*,?,_,~].*[a-zA-Z0-9])/)) {
alert("비밀번호는 영문,숫자,특수문자(!@$%^&* 만 허용)를 사용하여 6~16자까지, 영문은 대소문자를 구분합니다.");
return false;
}
//if(ObjUserID.value.indexOf(ObjUserPassword) > -1) {
// alert("비밀번호에 아이디를 사용할 수 없습니다.");
// return false;
//}
var SamePass_0 = 0; //동일문자 카운트
var SamePass_1 = 0; //연속성(+) 카운드
var SamePass_2 = 0; //연속성(-) 카운드
for(var i=0; i < ObjUserPassword.value.length; i++) {
var chr_pass_0 = ObjUserPassword.value.charAt(i);
var chr_pass_1 = ObjUserPassword.value.charAt(i+1);
//동일문자 카운트
if(chr_pass_0 == chr_pass_1) {
SamePass_0 = SamePass_0 + 1
}
var chr_pass_2 = ObjUserPassword.value.charAt(i+2);
//연속성(+) 카운드
if(chr_pass_0.charCodeAt(0) - chr_pass_1.charCodeAt(0) == 1 && chr_pass_1.charCodeAt(0) - chr_pass_2.charCodeAt(0) == 1) {
SamePass_1 = SamePass_1 + 1
}
//연속성(-) 카운드
if(chr_pass_0.charCodeAt(0) - chr_pass_1.charCodeAt(0) == -1 && chr_pass_1.charCodeAt(0) - chr_pass_2.charCodeAt(0) == -1) {
SamePass_2 = SamePass_2 + 1
}
}
if(SamePass_0 > 1) {
alert("동일문자를 3번 이상 사용할 수 없습니다.");
return false;
}
if(SamePass_1 > 1 || SamePass_2 > 1 ) {
alert("연속된 문자열(123 또는 321, abc, cba 등)을\n 3자 이상 사용 할 수 없습니다.");
return false;
}
return true;
}
</script>
<form name="wform" method="post" onSubmit="return post_check();" >
비밀번호 <input type="password" id="pwd" name="pwd" /><br>
<input type="submit" value="글쓰기" />
</form>
- 이전글(HTML) 마우스 오른쪽 버튼 사용금지등의 스크립트 17.10.23
- 다음글Proxy ip 사용자의 실제 IP 17.09.13
댓글목록
등록된 댓글이 없습니다.