정규표현식

young·2022년 8월 19일
0

Learn more

목록 보기
22/22

📌 정규표현식

문자열 관리를 간편하게 하는 방법 중 하나
특정한 규칙을 갖는 문자열 표현식

1. 정규표현식 리터럴로 사용하기

정규표현식 규칙 (찾고자 하는 문자열)을 슬래시/로 감싸 사용한다.

const pattern = /c/g;
const regExp = /^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/;

정규표현식 뒤의 g는 전체 문자열을 대상으로 탐색하는 것을 의미하는 전역 탐색 플래그다.

정규표현식 리터럴은 스크립트를 불러올 때 컴파일되므로, 바뀌지 않는 패턴의 경우에 사용한다.

2. 생성자 함수 호출로 사용하기

RegExp 객체의 생성자 함수를 호출하여 사용한다.

const pattern = new RegExp('c')

생성자 함수 호출을 통해 만들어진 정규표현식은 런타임에 컴파일된다.

🧩 정규표현식 패턴 작성하기

  1. 단순 패턴은 문자열 그대로를 탐색할 때 사용한다.
  2. 직접적인 일치 이상의 탐색이 필요할 때 특수 문자를 사용한다.
  • 특수 문자를 있는 그대로 탐색할 때에는 특수 문자 앞에 역슬래시\를 배치해서 이스케이프 한다.
/\^/ : 특수문자 ^를 탐색한다.

🧩 정규표현식 내장 메소드

자바스크립트에서 정규표현식은 RegExp 객체로서 내장 메소드를 가진다.

exec()

: execution
탐색할 대상을 첫 번째 인자로 전달한다.
원하는 정보를 뽑아내고자 할 때 사용한다.
탐색 대상에 찾는 문자열 패턴이 없으면 null을 반환한다.

const pattern = /c/;
pattern.exec('alphabet') //null
pattern.exec('cmarket') //['c', index: 0, input: 'cmarket', groups: undefined]

test()

탐색할 대상을 첫 번째 인자로 전달한다.
탐색할 대상 안에 찾고자 하는 문자열 패턴이 있는지 여부를 boolean으로 반환한다.

const pattern = /c/;
pattern.test('alphabet') //false
pattern.test('cmarket') //true

String 객체에서도 정규표현식을 사용하는 내장 메소드를 가진다.

match()

: RegExp.exec()와 비슷한 기능
정규표현식을 인자로 받아 탐색하려는 문자열과 일치된 결과를 배열로 반환한다.
없을 경우 null 반환

const pattern = /c/;
'alphabet'.match(pattern); //null
'cmarket'.match(pattern) //['c', index: 0, input: 'cmarket', groups: undefined]

replace()

검색 후 바꾸기를 수행한다.
첫 번째 인자로 정규표현식을, 두 번째 인자로 치환하려는 문자열을 받는다.

const pattern = /c/;
'cmarket'.replace(pattern, 'C') //'Cmarket'

변경된 값을 리턴한다.

split()

주어진 인자를 구분자로 삼아 문자열을 부분 문자열로 나눈 결과를 배열로 반환한다.

seatch()

정규표현식을 인자로 받아 가장 처음 매칭되는 부분 문자열의 위치를 반환한다.
없을 경우 -1 반환

🧩 Flag

정규표현식 슬래시/ 뒤에 붙여서 사용하는 추가적인 검색 옵션
순서에 상관 없이 여러 flag의 사용도 가능하다.

i : 대소문자를 구분하지 않는다.
g : global. 검색된 모든 결과를 리턴한다.
m : 다중행을 검색한다.


Learn more...

https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Regular_Expressions

정규표현식 사용해볼 수 있는 사이트
https://regexr.com/

profile
즐겁게 공부하고 꾸준히 기록하는 나의 프론트엔드 공부일지

0개의 댓글