정규표현식

5w31892p·2023년 4월 24일
0

정규표현식

목록 보기
1/1

많은 사이트에서 정규표현식을 사용하고 있다.
그래서 username, password, nickname 모두에 정규표현식을 사용하려고 한다.

우선 username과 nickname은 entity에서 unique = true를 사용하여 중복되는 값이 저장되지 않게 설정하였다.
그리고 정규표현식은 dto에서 해결하였다.

우선 가장 먼저 할 일은 의존성 추가를 해야 한다.

implementation 'org.springframework.boot:spring-boot-starter-validation'

그 다음 @Pattern 어노테이션을 사용해 어떠한 표현 사용할지 설정한다.

  1. username : 영문+숫자, 4-12자
    @Pattern(regexp = "^[a-zA-Z0-9]{4,12}$", message = "영문과 숫자를 포함하여 4자 이상 12자 이하로 적어주세요.")
  2. password : 영문+숫자+특수문자, 8-20자
    @Pattern(regexp = "^(?=.*[0-9])(?=.*[!@#$%^&*])(?=.*[a-zA-Z]).{8,20}$", message = "영문과 숫자 그리고 특수문자를 포함하여 8자 이상 20자 이하로 적어주세요.")
  3. nickname : 숫자 or 한글 or 영문으로 3자 이상
    @Pattern(regexp = "^[a-zA-Z0-9가-힣ㄱ-ㅎㅏ-ㅣ]{3,}$", message = "3자 이상으로 적어주세요.")

마지막으로 controller에서 지정한 정규표현식을 적용할 수 있도록 @Validated 어노테이션을 추가해주면, 정상적으로 지정한 정규표현식이 적용되어 지켜지지 않은 경우에는 예외가 발생한다.

이 마지막 @Validated 어노테이션을 깜빡해 왜 정규표현식 작동 안하지? 하는 일 없도록 하기!!

0개의 댓글