파도파도 나오는 JavaScript

[JS Level up][Ch3][정규표현식] 정규식 생성

써치킴 2022. 2. 4. 01:54

정규표현식 테스트 사이트

https://regex101.com/
https://regexr.com/
https://regexper.com/

역할

  • 문자 검색(search)
  • 문자 대체(replace)
  • 문자 추출(extract)

방식

  • 생성자 함수 방식 : 생성자 함수를 호출하여 사용
  • new RegExp('표현', '옵션');
    new RegExp('[a-z]', 'gi');
  • 리터럴 방식 : /로 감싸진 패턴을 리터럴로 사용
  • /표현/옵션
    /[a-z]/gi

플래그

  • g : global, 모든 문자에서 여러번
  • i : ignore case, 대소문자 구별 X
  • m : multi line, 여러 줄 일치(줄을 구분하여 일치)
const str = `
010-1234-5678
testhello@gmail.com
https://www.omdbapi.com/?apikey=7035c60c&s=frozen
hello searchkim
abbcccdddd`;

// 플래그
// g : global, 모든 문자에서 여러번
// i : ignore case, 대소문자 구별 X

// 생성자 함수 방식
const reqexp = new RegExp('hello', 'gi');
console.log(str.match(reqexp));

// 리터럴 방식
const reqexpR = /hello/gi;
console.log(str.match(reqexpR));

! 리터럴 방식이 훨씬 편리하다.

그러나, 생성자 함수 방식을 사용해야할 때도 있다.

 

이스케이프 문자(Escape Character)

\(백슬래시) 기호를 통해 본래의 기능에서 벗어나 상태가 바뀌는 문자