JS | 정규표현식(2) : 자바스크립트와 정규표현식

Yeseul·2021년 4월 11일
0

JavaScript

목록 보기
6/10
post-thumbnail

생성방식

리터럴 표기법과 생성자, 두가지 방식을 통해 정규표현식 객체를 만들 수 있다.

var regExp = /pattern/flags
var regExp = new RegExp( pattern[, flags])

// 정규식 리터럴
/ab+c/i;

new RegExp('ab+c', 'i');
new RegExp(/ab+c/, 'i');
new RegExp(/ab+c/i);    // ES6

정규표현식을 사용하는 메소드

RegExp.exec()

RegExp.exec( target : string ) : RegExpExecArray | null

정규식에 매칭되는 문자열을 반환하며 전역 플래그(g)를 지정하여도 첫번째 매칭 대상만 반환한다.

const target = 'Is this all there is?';
const regExp1 = /is/;
const regExp2 = /is/g;

regExp1.exec(target);    // ['is', index: 5, ...]
regExp2.exec(target);    // ['is', index: 5, ...]

RegExp.test()

RegExp.test( target : string ) : boolean

문자열을 검색하여 일치하는 부분이 있으면 true, 없으면 false를 반환한다.

const target = 'Is this all there is?';
const regExp = /is/;

regExp.test(target) // true

String.match()

String.match( regExp ) : Array | null

정규식에 매칭되는 문자열을 배열에 담아 반환한다. 전역 플래그를 사용하면 일치되는 모든 항목을 반환한다.

전역 플래그를 포함하지 않았을 경우, 특정 문자열을 캡쳐할 수 있는데 캡쳐된 문자열은 groups 속성의 객체 형태로 저장된다.
캡쳐할 문자열은 (?<name>캡쳐할 문자열)형태로 지정할 수 있다.

const str = 'The sheep sleeps, and the dog barks';
let regExp = /(?<animal>sheep|dog) barks/;

console.log(str.match(regExp));
/* 
(2) ['dog barks', 'dog']
0: 'dog barks',
1: 'dog',
groups: {animal: 'dog'}
index: 26,
input: 'The sheep sleeps, and the dog barks'
*/

String.replace()

String.replace( regExp : regExp | string, newSubstr : string) : string

매칭되는 문자열을 주어진 문자열로 교체한다.

String.search()

String.search( regExp )

매칭되는 문자열이 있는지 검사한다. 있을 경우 첫 번째 매칭 대상의 위치값(인덱스)을, 없을 경우 -1을 반환한다.

String.split()

String.split( [separator : string | regExp[, limit : number]] ) : Array

매칭되는 문자열(separator)을 기준으로 현재 문자열을 분할한다.

  • limit
    반환되는 배열에 포함시킬 항목의 개수를 제한할 수 있다.
    음이 아닌 정수로 전달한다.

정규표현식 관련 유용한 사이트

regexp.com 작성한 정규표현식의 매칭 결과를 실시간으로 확인해볼 수 있다.
regexper.com 작성한 정규표현식을 시각화하여 보여준다.
regular-expressions.info 정규표현식 자습서. (영문이라 보기 어렵지만 가끔 꺼내보자)


poiemaweb | 5.26 정규표현식
MDN | 정규표현식을 사용하는 메소드 6개

profile
하루하루, 차곡차곡 👩🏻‍💻

0개의 댓글