본문 바로가기
내가 배운 것들/문제 해결

[RegExp] 아이디, 닉네임, 비밀번호 정규식

by Zabee52 2021. 12. 23.

RegExp

회원가입 처리할 때 유효성검사가 필요한 일이 생겼다. 근데 나는 정규식을 모른다. 그래서 인터넷에서 가져다 붙여넣으려고 좀 찾아봤다.

 

 

괜히 찾아봤다. 다른 허점은 고려하지 않은 채로 대충 몇 번 조회 때려보고 OK 뜨니까 되는구나 싶어서 올렸거나, 가독성이 너무 떨어져 튜닝이 어려운 쓰잘데기 없이 복잡한 정규식들이 많았다.

화난다고. 내 시간 돌려달라고.

그래서 내가 정말 짧은 시간을 공부하고 정규식 규칙을 짜봤다.

참고로 너무 조금 공부한 채로 짠거라 허점이 있을 수 있다. 아이러니하게도 잘못된 정보를 피해 얄팍한 지식으로 잘못된 식을 짜 본 것일 수도 있는 것이다. 이거에 허점이 있으면.. 받아들여야지. 지적 부탁드립니다. 더 효율적인 정규식이 있다면 그것도 추천 해주세요. 감사합니다. 땡큐.

 

1. 아이디 정책

- 3자 이상 16자 이하, 영어 또는 숫자로 구성

* 특이사항 : 대소문자 상관없이 toLowerCase()로 변환시켜 데이터베이스에 삽입하기 때문에 대문자 비교는 없다.

^(?=.*[a-z0-9])[a-z0-9]{3,16}$

2. 닉네임 정책

- 2자 이상 16자 이하, 영어 또는 숫자 또는 한글로 구성

* 특이사항 : 한글 초성 및 모음은 허가하지 않는다.

^(?=.*[a-z0-9가-힣])[a-z0-9가-힣]{2,16}$

3. 비밀번호 정책

- 6자 이상 16자 이하, 영어와 숫자의 조합으로 구성

* 특이사항 : . _ -를 포함한 특수문자도 같이 허용해준다.

^(?=.*[0-9])(?=.*[a-zA-Z])[a-zA-Z0-9!@#$%^&*()._-]{6,16}$

 

정규식 생각보다 어렵다..

댓글