정규식

sangwoo noh·2023년 4월 17일
0

JavaScript

목록 보기
16/16

Yup 모듈을 사용하여 입력값의 유효성을 검사할 때, 영문, 숫자, 특수문자가 각각 한 개 이상씩 꼭 포함되어야 하는 조건을 추가하려면 다음과 같은 정규표현식을 사용할 수 있습니다.

const schema = yup.object().shape({
  input: yup.string()
    .matches(/^(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\W_]).+$/, '영문, 숫자, 특수문자가 모두 포함되어야 합니다.')
});

위 정규표현식은 문자열의 처음부터 끝까지 검사하여 다음과 같은 세 가지 검색 조건을 모두 만족하는지 확인합니다.

영문이 적어도 한 개 이상 포함되어야 함
숫자가 적어도 한 개 이상 포함되어야 함
특수문자가 적어도 한 개 이상 포함되어야 함
이때, (?=.[a-zA-Z]), (?=.[0-9]), (?=.*[\W_]) 부분은 각각 positive lookahead 구문으로, 정규식 엔진이 문자열을 한 번만 훑어서 여러 개의 검색 조건을 확인할 수 있도록 합니다.

위 정규식에서 .+는 문자열의 길이가 1 이상이어야 함을 나타내며, 마지막 인자로는 검사에 실패했을 경우 사용자에게 보여질 에러 메시지를 입력할 수 있습니다.

이와 같은 정규식을 사용하면 입력값의 유효성을 간단하게 검사할 수 있으며, 유연하게 조합하여 다양한 유효성 검사 규칙을 만들어낼 수 있습니다.

profile
하기로 했으면 하자

0개의 댓글