정규식 표현설정 에러

권태형·2023년 2월 23일

U-eat

목록 보기
3/7
post-thumbnail

문제

이번 프로젝트에서 회원정보를 다루는데 있어 닉네임에 대한 유효성 검사를 실시할 때에 문제점이 발견 되었다.

나는 알파벳or한글이 들어가며 +,-,_ 의 세가지 특수문자만 허용할 수 있도록 적용하기 위해서

a-zA-Z0-9가-힣+-_ 에 대해서 유효성 검사를 실시했다.

근데 왠걸... VACode의 썬더클라이 언트를 사용해서 가입을 실시하는데 어떤건 되고 어떤건 안되고 문제가 발생했다.

문제의 원인 파악

따라서 나는 안되는 닉네임에을 추려보았다.

'ㄱr을ㄴr무' , 'easy-coding'

90년대 갬성 닉네임이 사용이 불가능 했다. 왜 안됬을까? 이것은 간단한 이유였다.

가-힣 으로 진행했기 때문에 모음과 자음이 합쳐진 한글만 적용되는 것이었다.

보통 한글을 정규식표현을 하게되면 ㄱ - 힇 까지라고 알게되었다.

그럼 easy-conding은 왜 안됬을까?
이 부분은 어떻게 검색해야할지 몰라서 생각보다 오랜시간을 잡아먹었다.

특수문자를 표기할 때에 +-_ +_-는 다른 결과를 만들어 낸다.

간단하게 생각하면 일반적으로 a-z까지로 알파벳을 설정할 때에 중간에 들어가는 -(하이푼)이 a와 z 사이 값을 축약한다.
따라서 +-_ 로 처음에 작성했던 방법음 +_ 사이의 값들을 포함하는 방식이 되는 것이고 +_-로 작성해야 하나씩 따로따로 3개의 특수문자만
포함하게 되는 방식이었다.

문제해결

'ㄱ - 힇'과 '+_-'로 변경

위에 원인과 해결방법을 통해 문제를 해결할 수 있었다.

profile
22년 12월 개발을 시작한 신입 개발자 ‘권태형’입니다. 포스팅 하나하나 내가 다시보기 위해 쓰는 것이지만, 다른 분들에게도 도움이 되었으면 좋겠습니다. 💯컬러폰트가 잘 안보이실 경우 🌙다크모드를 이용해주세요.😀 지적과 참견은 언제나 환영합니다. 많은 댓글 부탁드립니다.

0개의 댓글