9/13 TIL

최준호·2022년 9월 13일
0

< 목차 >

  1. 정규표현식이란?
  2. 회고

1. 정규표현식이란?

  • 정규 표현식이란 일정한 ‘패턴’을 가진 ‘문자열’의 ‘집합’을 표현하기 위해 사용하는 ‘형식 언어(formal language)’이다.
  • 정규 표현식은 자바스크립트의 고유 문법이 아니며, 대부분의 프로그램 언어와 코드 에디터에 내장되어 있다.

정규표현식의 역할

  • 정규 표현식은 문자열을 대상으로 ‘패턴 매칭 기능’을 제공한다.
  • 패턴 매칭 기능이란 특정 패턴과 일치하는 문자열을 검색, 추출, 치환(대체)할 수 있는 기능을 말한다.
  • 문자 검색 및 이메일, 패스워드 검사(유효성 검사) 등의 복잡한 문자 일치 기능 등을 정규 표현식 패턴으로 빠르게 수행할 수 있다.(다만, 가독성이 떨어진고 공백을 허용하지 않는다.)

리터럴방식

  • 리터럴은 데이터를 뜻하는 말로 변수에 넣는 변하지 않는 데이터를 의미한다.

  • 정규식 리터럴은 스크립트가 불러와질 때 컴파일된다.
    만약 정규식이 상수라면, 위와 같이 사용 하는 것이 성능을 향상시킬 수 있다.

const regexp1 = /^abc/;  // => /패턴/
const regexp2 = /^abc/gi; // => /패턴/플래그

RegExp 생성자 함수 방식

정규식 객체인 RegExp의 생성자 함수를 사용해 인스턴스를 생성하는 방법도 존재한다.
리터럴 방법과 달리 정규식이 실행 시점에 컴파일된다.

정규식의 패턴이 변경될 수 있는 경우, 혹은 사용자 입력과 같이 다른 출처로부터 패턴을 가져와야 하는 경우에는 생성자 함수를 사용하셔야 한다.

const regexp1 = new RegExp(/^abc/i); 
const regexp2 = new RegExp(/^abc/, 'i');
const regexp3 = new RegExp('^abc', 'i');

2. 회고

정규표현식... 어렵다.. 유효성 검사 필수 과제를 제출하고 시간이 많이 남게되어 도전과제를 진행해보았으나... 정규식표현으로 사용을 해야되서 학습을 해보았지만 너무 어려웠다. 마음 같아선 정규식표현 말고 다른 풀이방식으로 진행하고 싶었으나, 정규식표현도 언젠가는 사용을 할 것 같아서 이번 기회에 학습을 해보려고한다.

profile
LV2 프론트엔드 엔지니어

0개의 댓글