문자열 관리를 간편하게 하는 방법 중 하나
특정한 규칙을 갖는 문자열 표현식
정규표현식 규칙 (찾고자 하는 문자열)을 슬래시/
로 감싸 사용한다.
const pattern = /c/g;
const regExp = /^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/;
정규표현식 뒤의 g
는 전체 문자열을 대상으로 탐색하는 것을 의미하는 전역 탐색 플래그다.
정규표현식 리터럴은 스크립트를 불러올 때 컴파일되므로, 바뀌지 않는 패턴의 경우에 사용한다.
RegExp
객체의 생성자 함수를 호출하여 사용한다.
const pattern = new RegExp('c')
생성자 함수 호출을 통해 만들어진 정규표현식은 런타임에 컴파일된다.
\
를 배치해서 이스케이프 한다./\^/ : 특수문자 ^를 탐색한다.
자바스크립트에서 정규표현식은
RegExp
객체로서 내장 메소드를 가진다.
: execution
탐색할 대상을 첫 번째 인자로 전달한다.
원하는 정보를 뽑아내고자 할 때 사용한다.
탐색 대상에 찾는 문자열 패턴이 없으면 null
을 반환한다.
const pattern = /c/;
pattern.exec('alphabet') //null
pattern.exec('cmarket') //['c', index: 0, input: 'cmarket', groups: undefined]
탐색할 대상을 첫 번째 인자로 전달한다.
탐색할 대상 안에 찾고자 하는 문자열 패턴이 있는지 여부를 boolean으로 반환한다.
const pattern = /c/;
pattern.test('alphabet') //false
pattern.test('cmarket') //true
String 객체에서도 정규표현식을 사용하는 내장 메소드를 가진다.
: RegExp.exec()
와 비슷한 기능
정규표현식을 인자로 받아 탐색하려는 문자열과 일치된 결과를 배열로 반환한다.
없을 경우 null
반환
const pattern = /c/;
'alphabet'.match(pattern); //null
'cmarket'.match(pattern) //['c', index: 0, input: 'cmarket', groups: undefined]
검색 후 바꾸기를 수행한다.
첫 번째 인자로 정규표현식을, 두 번째 인자로 치환하려는 문자열을 받는다.
const pattern = /c/;
'cmarket'.replace(pattern, 'C') //'Cmarket'
변경된 값을 리턴한다.
주어진 인자를 구분자로 삼아 문자열을 부분 문자열로 나눈 결과를 배열로 반환한다.
정규표현식을 인자로 받아 가장 처음 매칭되는 부분 문자열의 위치를 반환한다.
없을 경우 -1 반환
정규표현식 슬래시/
뒤에 붙여서 사용하는 추가적인 검색 옵션
순서에 상관 없이 여러 flag의 사용도 가능하다.
i
: 대소문자를 구분하지 않는다.
g
: global. 검색된 모든 결과를 리턴한다.
m
: 다중행을 검색한다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Regular_Expressions
정규표현식 사용해볼 수 있는 사이트
https://regexr.com/