JavaScript 비밀번호(패스워드) 유효성 체크 (문자, 숫자, 특수문자의 조합으로 6~16자리)
페이지 정보
본문
<html>
<head>
<title>비밀번호(패스워드) 유효성 체크 (문자, 숫자, 특수문자의 조합으로 6~16자리)</title>
<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>
</head>
<body>
<form name="wform" method="post" onSubmit="return post_check();" >
비밀번호 <input type="password" id="pwd" name="pwd" /><br>
<input type="submit" value="글쓰기" />
</form>
참고자료
http://cafe.daum.net/PHP/2aVK/11?docid=NO142aVK1120021105213837
http://blog.naver.com/PostView.nhn?blogId=jihoon0083&logNo=104114413
http://blog.naver.com/PostView.nhn?blogId=fallove&logNo=70068794745
<head>
<title>비밀번호(패스워드) 유효성 체크 (문자, 숫자, 특수문자의 조합으로 6~16자리)</title>
<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>
</head>
<body>
<form name="wform" method="post" onSubmit="return post_check();" >
비밀번호 <input type="password" id="pwd" name="pwd" /><br>
<input type="submit" value="글쓰기" />
</form>
참고자료
http://cafe.daum.net/PHP/2aVK/11?docid=NO142aVK1120021105213837
http://blog.naver.com/PostView.nhn?blogId=jihoon0083&logNo=104114413
http://blog.naver.com/PostView.nhn?blogId=fallove&logNo=70068794745
댓글목록
등록된 댓글이 없습니다.