개발 지식/JavaScript
[Javascript] 비밀번호 조건 검사
brotherwook
2024. 1. 23. 00:31
728x90
오늘은 Electron으로 앱을 만들던 중 비밀번호 조건검사를 할 일이 있어서 이것에 대해 적어보고자 한다.
내가 만든 조건 검사이다.
function validatePassword(pw) {
let num = pw.search(/[0-9]/g);
let eng_big = pw.search(/[A-Z]/g);
let eng_small = pw.search(/[a-z]/g);
let spe = pw.search(/[`~!@@#$%^&*|₩₩₩'₩";:₩/?]/gi);
let condition = [num, eng_big, eng_small, spe];
if(pw.length < 9){
alert("비밀번호를 9자리 이상으로 입력해주세요.");
return false;
}
if(pw.search(/\s/) != -1){
alert("비밀번호를 공백 없이 입력해주세요.");
return false;
}
let result = condition.filter((element) => {
if (element >= 0) return true;
else return false;
});
if(result.length < 3) {
alert("비밀번호를 숫자, 영문 대문자, 영문 소문자, 특수문자 중 3 가지 조합 이상으로 입력해주세요.");
return false;
}
return true;
}
여기서 pw는 string이고 String.search(정규식) 으로 정규식 조건에 해당하는 문자의 index를 찾는 방법이다.
search(정규식)는 해당하는 문자를 못 찾는다면 -1을 반환한다.
그리고 Array ( [ ] 를 의미) 의 .filter를 사용하여 안에 원하는 조건에 맞으면 return true를 하게하여 true인 것들로만 구성된 Array를 반환 받을 수 있다.
따라서 result의 length를 확인함으로써 3가지 이상의 조합으로 이루어져있는지 확인할 수 있다.