코딩/자바스크립트

비밀번호 정규식 일치여부 확인 방법

카슈밀 2021. 7. 12. 11:03
반응형


1
2
3
4
5
6
7
8
9



// id 체크 정규식 : 숫자, 영문만 입력 가능
    var regExpId = /^[0-9a-z]+$/;


// 비밀번호 규칙 정규식
// : 숫자, 특문 각 1회 이상, 영문은 2개 이상 사용하여 8자리 이상 입력
    var regExpPw = /(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$/;

    
// 이메일주소 형식 체크 정규식
    var regExpEm = /^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i;

흔하게 보는 비밀번호 정규식이다.

8글자 이상 kisa가 지키라고 권고한 8글자 이상 비밀번호 정규식이다.
출처: https://yuchae.tistory.com/363 [앙큼한유채's 일상 Story]

 

위 처럼 해당 정규식들은 많이 볼 것이다.

하지만 이를 적용하여 일치 여부를 보는 코드까지는 있지 않아서 이를 적으려한다.

let regExpPw =  /(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$/;;
let pattern = /\s/g;
let pw = $(this).val();
if(pattern.test(pw) == true) {
alert('비밀번호에는 공백이 들어갈 수 없습니다.');
} else if( pw.length < 8 ) {
alert('비밀번호는 8글자 이상이어야 합니다.');
} else if(regExpPw.test(pw) == false ) {
	alert('123');
}
regExpPw.test(pw) // 결과값이 true, false로 나옴
regExpPw.search(pw) // false = -1로 나오고, true일때는 ???

match도 있는 것 같은데, 어떻게 쓴건지 기억이 안남.

https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Regular_Expressions

 

정규 표현식 - JavaScript | MDN

정규 표현식은 문자열에 나타는 특정 문자 조합과 대응시키기 위해 사용되는 패턴입니다. 자바스크립트에서, 정규 표현식 또한 객체입니다.  이 패턴들은 RegExp의 exec 메소드와 test 메소드  ,

developer.mozilla.org

찾아보니 여기 있네.

이거 보고 쓰자.

 

2022/07/14

++ 비밀번호 정규식이 개떡같아서 작동되지 않는다.

1q2w3e4r!를 튕겨내길래 이를 문제 없이 지나가는 것으로 교체 함.

728x90