[TIL] Validation - validator, coerce

👉🏼 KIM·2024년 11월 30일

TIL

목록 보기
48/54

오늘 공부한것 & 기억하고 싶은 내용

validator

  • 문자열 유효성 검사 라이브러리
npm i validator
npm i --save-dev @types/validator

import validator from 'validator';

const isEmailValid = validator.isEmail('test@example.com'); // true
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); // { phoneNumber: 1234567890 }

-----

const tokenSchema = z.coerce.number().min(100000).max(999999);

배운점 & 느낀점

  • input의 값은 항상 string으로 오기 때문에 전화번호 같은건 꼭 number로 가져와야 하므로 coerce는 zod와 함께 잘 쓰일 거 같다.
  • 앞으로 폼 데이터 처리할 때 적극 활용해봐야겠다.
profile
프론트는 순항중 ¿¿

0개의 댓글