티스토리 뷰
728x90
반응형
Regular Expression 문법
[ 참고자료]
더보기
이메일주소 정규식 모음 & 휴대폰번호 정규식모음
비밀번호 정규식 모음
- 자바스크립트에 정규표현식 나타내기
1-1) 영어+숫자 조합 (단, 숫자는 최소 1개이상)
const PRIVATE_PASSWORD_REGEX = /([a-zA-Z])(\d{1,})\g/;
1-2) 영어+숫자 조합 / 숫자 최소 한개 / 최소 6자 이상
/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6,}$/
2) 이메일 형식 조합
맨앞에는 숫자가 들어올 수 없음.
영어+숫자조합@이메일주소.도메인 형태
const EMAIL_REGEX = /^[a-zA-Z0-9+-_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$\/g
3) 전화번호 정규식
휴대폰번호 정규식
const PHONE_REGEX = /^\d{3}-\d{3,4}-\d{4}$/
휴대폰번호 체크 정규식
const PHONE_REGEX_CHECK = /^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/
class-validator의 @Matches() 를 이용하여 엔티티에 정규표현식 적용하기
export class CreatePostDto {
...
@Matches(REGEX)
@IsString()
postPassword: string;
}
[참고자료]
class-validator 의 @IsOptional()을 활용하여 선택적으로 값을 받기
상황
비밀글을 등록을 요청할 때는 패스워드 필드가 필요하고, 공개글 등록을 요청할 때는 패스워드 필드값을 안받게 하고싶음.
문제
선택적으로 받기위하여 postPassword 필드에 '?' 마크를 달았지만
디버깅결과 request에는 postPassword값이 들어있음에도 불구하고 컨트롤러에서는 걸러져버림.
해결
@IsOptional()을 추가함으로써, DTO 타입체크하면서 선택적으로 값을 받도록 하였다.
export class CreatePostDto {
...
@IsOptional()
@IsString()
postPassword?: string;
}
[ NestJS 에러핸들링 ]
728x90
반응형
'Backend > 꾸준히 TIL' 카테고리의 다른 글
[NestJS+TypeORM] Pagination 처리 (0) | 2022.11.07 |
---|---|
[Jest+NestJS] Jest 테스트 환경세팅 (0) | 2022.11.05 |
[NestJS + TypeORM] 소수넘버 필드, 길이 설정 (0) | 2022.11.05 |
[에러 해결] Cannot find module bcrypt_lib.node (0) | 2022.11.05 |
[NestJS + Typescript ] URL 깨짐 원인과 typeorm where in (1) | 2022.11.04 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- OS
- IT용어
- nestjs
- 스마트폰중독
- 개발용어
- MongoDB
- 바이트디그리
- Mongoose
- 한달독서
- 한달어스
- 갓생살자
- 미완
- git
- TDD
- jest
- TypeScript
- 디지털디톡스
- vscode
- node.js
- 클린아키텍쳐
- Jekyll
- typeORM
- 참고
- RDBMS
- 나도 할 수 있다
- gem
- Nest.js
- 습관개선
- nestjs jest
- MySQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함