[javascript-jQuery] 비밀번호 유효성 체크2
본문
function passwordCheck() {
/*var userID = document.getElementById("userID").value;
var password = document.getElementById("password").value;
var newPassword1 = document.getElementById("newPassword1").value;
var newPassword2 = document.getElementById("newPassword2").value;*/
var userID = $(".mem_id").val();
var newPassword1 = $(".mem_pwd").val();
var newPassword2 = $(".rmem_pwd").val();
// 길이
/*
if(!/^[a-zA-Z0-9!@#$%^&*()?_~]{6,20}$/.test(newPassword1)) {
//alert("비밀번호는 영문, 숫자, 특수문자의 조합으로 6~20자리를 사용해야 합니다.");
$(".pwd_chk_msg").html("비밀번호는 영문, 숫자, 특수문자(!@#$%^&*()?_~)의 조합으로 6~20자리를 사용해야 합니다. ");
$(".pwd_chk_msg").css({color:"red"});
return false;
}
*/
//최소 8 자, 최소 하나의 문자 및 하나의 숫자
//"^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$"
//최소 8 자, 최소 하나의 문자, 하나의 숫자 및 하나의 특수 문자
//"^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$"
//최소 8 자, 대문자 하나 이상, 소문자 하나 및 숫자 하나
//"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$"
//최소 8 자, 대문자 하나 이상, 소문자 하나, 숫자 하나 및 특수 문자 하나 이상
//"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}"
//최소 8 자 및 최대 10 자, 대문자 하나 이상, 소문자 하나, 숫자 하나 및 특수 문자 하나 이상
if(!/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,20}/.test(newPassword1)) {
//alert("비밀번호는 영문, 숫자, 특수문자의 조합으로 6~20자리를 사용해야 합니다.");
$(".pwd_chk_msg").html("비밀번호는 영문 대소문자, 숫자, 특수문자(!@#$%^&*()?_~) 하나 이상의 조합으로 6~20자리를 사용해야 합니다. ");
$(".pwd_chk_msg").css({color:"red"});
return false;
}
// 영문, 숫자, 특수문자 1종 이상 혼용
/*
var chk1 = 0;
var chk2 = 0;
var chk3 = 0;
var chk4 = 0;
if(newPassword1.search(/[0-9]/g) != -1 ) chk1 ++;
if(newPassword1.search(/[a-z]/ig) != -1 ) chk2 ++;
if(newPassword1.search(/[A-Z]/ig) != -1 ) chk3 ++;
if(newPassword1.search(/[!@#$%^&*()?_~]/g) != -1 ) chk4 ++;
if(chk1 < 1) {
//alert("비밀번호는 숫자 하나 이상을 혼용하여야 합니다.");
$(".pwd_chk_msg").html("비밀번호는 숫자 하나 이상을 혼용하여야 합니다. ");
$(".pwd_chk_msg").css({color:"red"});
return false;
}
if(chk2 < 1) {
//alert("비밀번호는 영문 소문자 하나 이상을 혼용하여야 합니다.");
$(".pwd_chk_msg").html("비밀번호는 영문 소문자 하나 이상을 혼용하여야 합니다. ");
$(".pwd_chk_msg").css({color:"red"});
return false;
}
if(chk3 < 1) {
//alert("비밀번호는 영문 대문자 하나 이상을 혼용하여야 합니다.");
$(".pwd_chk_msg").html("비밀번호는 영문 대문자 하나 이상을 혼용하여야 합니다. ");
$(".pwd_chk_msg").css({color:"red"});
return false;
}
if(chk4 < 1) {
//alert("비밀번호는 특수문자 하나 이상을 혼용하여야 합니다.");
$(".pwd_chk_msg").html("비밀번호는 특수문자 하나 이상을 혼용하여야 합니다. ");
$(".pwd_chk_msg").css({color:"red"});
return false;
}
*/
// 동일한 문자/숫자 4이상, 연속된 문자
if(/(\w)\1\1\1/.test(newPassword1) || isContinuedValue(newPassword1)) {
//alert("비밀번호에 4자 이상의 연속 또는 반복 문자 및 숫자를 사용하실 수 없습니다.");
$(".pwd_chk_msg").html("비밀번호에 4자 이상의 연속 또는 반복 문자 및 숫자를 사용하실 수 없습니다. ");
$(".pwd_chk_msg").css({color:"red"});
return false;
}
// 아이디 포함 여부
if(newPassword1.search(userID)>-1) {
//alert("ID가 포함된 비밀번호는 사용하실 수 없습니다. ");
$(".pwd_chk_msg").html("ID가 포함된 비밀번호는 사용하실 수 없습니다. ");
$(".pwd_chk_msg").css({color:"red"});
return false;
}
// 재입력 일치 여부
if (newPassword1 != newPassword2) {
//alert("입력한 두 개의 비밀번호가 서로 일치하지 않습니다.");
$(".pwd_chk_msg").html("입력한 두 개의 비밀번호가 서로 일치하지 않습니다. \n"+newPassword1+" : "+newPassword2);
$(".pwd_chk_msg").css({color:"red"});
return false;
} else {
$(".pwd_chk_msg").html("비밀번호 체크 완료.");
$(".pwd_chk_msg").css({color:"blue"});
}
$(".pwd_chk").val("Y");
// 기존 비밀번호와 새 비밀번호 일치 여부
/*
if (password == newPassword2) {
alert("기존 비밀본호와 새 비밀번호가 일치합니다.");
return false;
}
*/
}
function isContinuedValue(value) {
console.log("value = " + value);
var intCnt1 = 0;
var intCnt2 = 0;
var temp0 = "";
var temp1 = "";
var temp2 = "";
var temp3 = "";
for (var i = 0; i < value.length-3; i++) {
console.log("=========================");
temp0 = value.charAt(i);
temp1 = value.charAt(i + 1);
temp2 = value.charAt(i + 2);
temp3 = value.charAt(i + 3);
console.log(temp0)
console.log(temp1)
console.log(temp2)
console.log(temp3)
if (temp0.charCodeAt(0) - temp1.charCodeAt(0) == 1
&& temp1.charCodeAt(0) - temp2.charCodeAt(0) == 1
&& temp2.charCodeAt(0) - temp3.charCodeAt(0) == 1) {
intCnt1 = intCnt1 + 1;
}
if (temp0.charCodeAt(0) - temp1.charCodeAt(0) == -1
&& temp1.charCodeAt(0) - temp2.charCodeAt(0) == -1
&& temp2.charCodeAt(0) - temp3.charCodeAt(0) == -1) {
intCnt2 = intCnt2 + 1;
}
console.log("=========================");
}
console.log(intCnt1 > 0 || intCnt2 > 0);
return (intCnt1 > 0 || intCnt2 > 0);
}
댓글목록 0