오늘 공부한것 & 기억하고 싶은 내용
validator
npm i validator
npm i --save-dev @types/validator
import validator from 'validator';
const isEmailValid = validator.isEmail('test@example.com');
console.log(isEmailValid);
-----
const phoneSchema = z
.string()
.trim()
.refine(
(phone) => validator.isMobilePhone(phone, "ko-KR"),
"Wrong phone format"
);
coerce
- coerce는 기본 값을 강제로 변환
- 내장 생성자(String(input), Number(input), new Date(input) 등))를 사용하여 모든 입력을 강제함
import { z } from 'zod';
const schema = z.object({
phoneNumber: z.coerce.number(),
});
const result = schema.parse({ phoneNumber: "1234567890" });
console.log(result);
-----
const tokenSchema = z.coerce.number().min(100000).max(999999);
배운점 & 느낀점
- input의 값은 항상 string으로 오기 때문에 전화번호 같은건 꼭 number로 가져와야 하므로 coerce는 zod와 함께 잘 쓰일 거 같다.
- 앞으로 폼 데이터 처리할 때 적극 활용해봐야겠다.