728x90
반응형
JavaScript & jQuery 비밀번호(password) 유효성 검사 정규식!
코드에 여러 조건 걸어놓았습니다. 필요한 부분만 복붙하여서 바로 테스트 해보세요 !!
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<input type="text" id="id">
<input type="password" id="password">
<button onclick="checkPw()">signUp</button>
</head>
<body>
</body>
<script src="https://code.jquery.com/jquery-latest.min.js"></script>
<script>
function checkPw() {
let id = $("#id").val();
let pw = $("#password").val();
let number = pw.search(/[0-9]/g);
let english = pw.search(/[a-z]/ig);
let spece = pw.search(/[`~!@@#$%^&*|₩₩₩'₩";:₩/?]/gi);
let reg = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/;
if (pw.length < 8 || pw.length > 20) {
alert("8자리 ~ 20자리 이내로 입력해주세요.");
return false;
} else if (pw.search(/\s/) != -1) {
alert("비밀번호는 공백 없이 입력해주세요.");
return false;
} else if (number < 0 || english < 0 || spece < 0) {
alert("영문,숫자,특수문자를 혼합하여 입력해주세요.");
return false;
} else if ((number < 0 && english < 0) || (english < 0 && spece < 0) || (spece < 0 && number < 0)) {
alert("영문,숫자, 특수문자 중 2가지 이상을 혼합하여 입력해주세요.");
return false;
} else if (/(\w)\1\1\1/.test(pw)) {
alert('같은 문자를 4번 이상 사용하실 수 없습니다.');
return false;
} else if (pw.search(id) > -1) {
alert("비밀번호에 아이디가 포함되었습니다.");
return false;
} else {
alert("비밀번호가 정상적으로 입력되었습니다.");
return true;
}
if (false === reg.test(pw)) {
alert('비밀번호는 8자 이상이어야 하며, 숫자/대문자/소문자/특수문자를 모두 포함해야 합니다.');
return false;
} else {
alert("비밀번호가 정상적으로 입력되었습니다.");
return true;
}
}
</script>
</html>
728x90
반응형
'Coding > JavaScript' 카테고리의 다른 글
[JavaScript] 논리 연산자 &&, ||, ! (and, or, not)란? (0) | 2022.06.08 |
---|---|
[JavaScript] Uncaught TypeError: check.test is not a function 정규식 에러 발생시 (0) | 2022.03.22 |
[JavaScript & jQuery] 체크박스(Checkbox) 체크 유무 및 확인 방법 (0) | 2022.02.11 |
[JavaScript] 현재 날짜와 시간 함수 사용법 new Date() - 년, 월, 일, 시, 분, 초 (0) | 2022.02.08 |
[JavaScript] Prompt() 함수로 입력창 띄우기 & 텍스트 출력 하기!! (0) | 2021.08.12 |
댓글