[정규식]정규식에 대해 알아보자

박용희·2023년 8월 1일
0

정규식에 대해 알아보자

정규식(Regular Expression)이란?

정규식(Regular Expression)은 문자열에서 특정 패턴을 찾거나 매칭하는 데 사용되는 문자열의 표현 방법입니다. 정규식은 매우 강력하고 유연하며, 문자열 검색, 치환, 추출 등 다양한 문자열 조작 작업에 사용됩니다.

정규식 구성 요소

const regexr = /pattern/flag

양 끝에 있는 /는 시작과 종료를 알려준다.

pattern

/a/

const str = 'abcdefg'
console.log(/a/.test(str)); //ture
console.log(/z/.test(str)); //false

해당하는 문자가 들어가 있는지 확인한다

[a-z]

const str2 = 'axyz';
console.log(/[a-z]/.test(str2)) // true
console.log(/[b-g]/.test(str2)) // false
const str3 = '안녕';
console.log(/[a-zA-z]/.test(str3)) // false
console.log(/[ㄱ-ㅎ가-힣ㅏ-ㅣ]/.test(str3)) // true

문자 범위를 지정해서 들어가 있는지 확인한다.

^a, a$

const str4 = 'abc';
console.log(/^a/.test(str4)) // true
console.log(/c$/.test(str4)) // true

^는 시작하는 문자, $는 끝나는 문자를 체크해준다.

/a+/

const str5 = 'aaaa';
console.log(/a+/.test(str5)) // true aaaa

+를 붙이게 되면 a뒤에 똑같은 문자가 있는지 확인해준다.

플래그

정규식에서는 플래그(Flags)를 사용하여 검색의 방법과 동작을 세부적으로 제어할 수 있습니다.

const str = 'Hello, hello, HELLO';
console.log(/hello/gi/.test(str) // true Hello, hello, HELLO

i : 대소문자 무시하여 검색
g : 전역 검색, 일치하는 모든 부분을 찾는다.

활용 예시

이메일 검사

const email = 'abc23@gmail.com'
console.log(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(email)) //true

핸드폰번호 검사

const number = '010-1234-5678'
console.log(/^\d{3}-\d{3,4}-\d{4}$/.test(number)) // true

정규식의 장단점

장점

  • 다양한 패턴에 대해 검색을 할 수 있다.
  • 이메일 주소, 전화번호, 비밀번호등의 유효성 검사하는데 유용하다.

단점

  • 가독성이 매우 떨어진다.
  • 정규식의 패턴이 복잡할수록 실행속도가 느려진다.
  • 패턴이 복잡할 수록 실수가 많아진다.

0개의 댓글