독도갈매기의 개발 블로그
[JS] 정규 표현식이 뭐길래 배우는걸까? 본문
정규 표현식 정리하기
정규식 생성
First, 리터럴 방식
let Reg = /ab+c/;
정규식 리터럴은 스크립트가 불러와질 때 컴파일됩니다.
만약 정규식이 상수라면, 위와 같이 사용 하는 것이 성능을 향상시킬 수 있습니다.
Second, 객체 인스턴스 생성 방식
let Reg = new RegExp("ab+c");
정규식 객체인 RegExp의 생성자 함수를 사용해 인스턴스를 생성하는 방법도 존재합니다.
이 경우 리터럴 방법과 달리 정규식이 실행 시점에 컴파일됩니다.
정규식의 패턴이 변경될 수 있는 경우, 혹은 사용자 입력과 같이
다른 출처로부터 패턴을 가져와야 하는 경우에는 생성자 함수를 사용하셔야 합니다.
둘의 차이점은?
위에서 설명되어 있듯이 리터럴 방식
같은 경우에는 스크립트가 불러와질 때 실행되죠?
쉽게 말해 프로그램
이 시작 되었을 때를 의미합니다.
반대로 객체 인스턴스
방식은 정규식이 실행 시점에 실행됩니다.
이것도 쉽게 말해 정규식으로 거르는 코드
가 실행되었을 때를 의미합니다.
여기서 코드는 한줄의 코드를 의미합니다.
정규식 사용하기
메소드 | 설명 |
---|---|
exec |
대응되는 문자열을 찾는 RegExp 메소드입니다. 정보를 가지고 있는 배열을 반환 합니다.대응되는 문자열을 찾지 못했다면 null을 반환합니다. |
test |
대응되는 문자열이 있는지 검사하는 RegExp 메소드입니다.true나 false를 반환합니다. |
match |
대응되는 문자열을 찾는 RegExp 메소드입니다. 정보를 가지고 있는 배열을 반환합니다.대응되는 문자열을 찾지 못했다면 null을 반환합니다. |
search |
대응되는 문자열이 있는 검사하는 String 메소드입니다.대응된 부분의 인덱스를 반환합니다. |
replace |
대응되는 문자열을 찾아 다른 문자열로 치환하는 String 메소드입니다. |
split |
정규식 혹은 문자열을 대상 문자열을 나누어 배열로 반환하는 String 메소드입니다. |
리터럴, 인스턴스 모두 가능한 메소드 알아보기
간단한 예시로 exec()
함수를 사용해보겠습니다.리터럴 방식
let myReg = /d(b+)d/g;
let myarr = myReg.exec('cdbbdbsbz');
객체 인스턴스 방식
let myReg = new RegExp('d(b+)d', 'g');
let myarr = myReg.exec('cdbbdbsbz');
패턴은 분량이 많아 건너뛰었습니다.
오랜만에 올리는 포스팅이면서 원래 목표는 하루 한개 포스팅이었지만 여러가지 일이 겹쳐서 늦어지게 되었네요;;
이제부터 올리는 포스팅들은 하루 한개는 힘들것같습니다. 그래도 최대한 올려보겠습니다.
오늘은 오랜만에 올린 기념으로 프로그래밍을 하게되면 무조건 쓰게되어 있는 정규식을 알아봤습니다.
배워두면 어딘가에는 꼭 쓸모있고 언젠가 쓰게되는 개념이니 제 포스팅은 흥미를 갖고 다른 개념도 찾아보시길 권장드립니다.
mozilla에 들어가시면 공식문서에서 설명하는 것을 보실 수 있습니다.
'Javascript' 카테고리의 다른 글
[JS] var, let, const 왜 쓸까? 변수 선언방법 차이점 (0) | 2020.10.11 |
---|---|
[JS] 객체지향프로그래밍(OOP)의 핵심 개념 인스턴스와 객체 (0) | 2020.09.29 |
[JS] 알아두면 좋은 JS개념 spread와 rest 전개구문 (0) | 2020.09.27 |
[JS] 프레임워크에서 많이 쓰는 JS개념 구조분해할당 (0) | 2020.09.26 |
[JS] 자바스크립트가 어려운 이유 Prototype 편 -끝- (0) | 2020.09.24 |
Comments