[DEV] 기록

@Pattern 어노테이션을 통해 전화번호가 유효한 형태인지 검증

꾸준함. 2020. 7. 28. 11:10

Input 값이 유효한 전화번호 형식인지 검증하기 위해 @Pattern 어노테이션을 사용했습니다.

정규문법을 이용하여 확인하는 것이고 작성방법은 아래와 같습니다.

 

DTO

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Temp {
	// 전화번호
	@NotNull
	@Pattern(regexp = "^01(?:0|1|[6-9])[.-]?(\\d{3}|\\d{4})[.-]?(\\d{4})$", message = "10 ~ 11 자리의 숫자만 입력 가능합니다.")
	String telephoneNumber;
}

 

여기서 핵심은 regexp = "^01(?:0|1|[6-9])[.-]?(\\d{3}|\\d{4})[.-]?(\\d{4})$" 이 부분입니다. 

 

이어서 Controller에서 @Valid 어노테이션과 BindingResult 객체를 통해 예외처리를 어떤 식으로 하는지 간략하게 소개하겠습니다.

Controller

@Slf4j
@RestController
public class TempController {
	@Autowired
	private TempService tempService;
	
	@ApiOperation(value = "temp")
	@PostMapping(value = {"/temp"})
	public TempRes temp(@Valid TempReq tempReq, BindingResult bindingResult) {
		log.debug("[IN]TempController.java temp ()={}", tempReq.toString());
		
		if (bindingResult.hasErrors()) {
			// 예외처리
		}
		
		TempRes tempRes = tempService.service(tempReq);
		
		log.debug("[OUT]TempController.java temp ()={}", tempRes.toString());
		
		return tempRes;
	}
}

 

[개발환경] Windows, STS 3.9.11, Java 1.8

반응형