티스토리 뷰

-problem

이번 클론코딩 프로젝트에서 회원가입 / 로그인 파트를 맡게 되었다.

여기에서 사용자의 핸드폰번호, 닉네임, 생년월일, 비밀번호를 검증해야하는 문제가 있었다.

 

-what I tried

일단 정규식을 작성했으나, 검증이 완벽히 되지 않는 문제가 있었다.

그냥 알고있는 수준에서는 해결할 수가 없어 검색을 하기로 했다.

 

-my answer

생년월일과 비밀번호 검증에서 새로운 것을 알게 되었다.

 

아래는 생년월일을 검증하기 위한 정규식이다.

 

^\\d{2}([0]\\d|[1][0-2])([0][1-9]|[1-2]\\d|[3][0-1])$

\\d{2}연도 두 자리는 아무거나 와도 되니까 따로 조건을 걸지 않고 숫자만 오면 상관없게 하였다!

 

([0]\\d|[1][0-2]) 월의 경우 앞자리가 0이면 뒤에는 1-9만 오도록 하고,

앞의 자리가 1인 경우에는 0,1,2만 올 수 있도록 하였다.

 

([0][1-9]|[1-2]\\d|[3][0-1]) 일의 경우 앞자리가 0이면 뒤에는 1-9, 1이나 2인 경우엔 숫자 아무거나, 3인 경우에는 0이나 1만 올 수 있도록 했다.

 

아래는 비밀번호 검증을 위한 정규식이다.

^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,12}$

 

-I learned!
생년월일 정규식을 통해 or연산 하듯 |을 통해 조건을 걸 수 있다는 것을 알게 되었다. 

또한

?= 뒷부분을 확인하겠다,

.* 하나라도 있는 지 체크!

.은 어떤 한 개의 문자, *은 앞의 문자가 0개 이상 있음을 의미한다는 것을 알게 되었다.

댓글