본문 바로가기
프로그래밍/자바스크립트

자바스크립트 정규식 객체와 자주 쓰이는 함수

by pentode 2018. 4. 17.

자바스크립트에서 정규식을 사용하는 방법은 String 객체의 메소드를 사용하는 방법과 정규식 객체 RegExp 를 사용하는 방법이 있습니다. 자주 사용하는 몇가지를 알아 보도록 하겠습니다.


 정규식을 다음과 같은 문법을 가집니다.


/pattern/flags;


flags 로는 다음 세 가지가 있습니다.

 - g : 일치하는 첫 번째 문자에서 멈추지 않고 전체에서 일치하는 모든 문자를 검색합니다.

 - m : 시작 혹은 끝 문자 탐색(^ and $)이 행마다 적용되도록 합니다

 - i : 대소문자를 구분하지 않고 매칭합니다.


var str = "abc\nABC abc";

// 전체의 시작을 검색합니다.
var patt = /^abc/gi;
var result = str.match(patt);
console.log(result);

결과)
[abc]

// 모든 행의 시작을 검색합니다.
var patt = /^abc/gmi;
var result = str.match(patt);
console.log(result);

결과)
["abc", "ABC"]


1. String 객체의 메소드


// str 에서 시작과 끝의 공백을 제거합니다.
str.replace(/^\s+|\s+$/g, "");

// str이 여러행으로 구성된 문자열 이라면,
// 각 행마다 앞뒤의 공백을 제거합니다.
str.replace(/^\s+|\s+$/gm, "");



2. RegExp 객체


RegExp 객체의 exec() 메소드는 찾은 결과를 배열로 리턴합니다. g 플래그를 사용해서 모두 찾을때는 루프를 사용해서 반복해야 합니다.


var str = "This is test.";

// 아래 두가지는 동일합니다.
var patt = new RegExp("is", "g");
//var patt = /is/g;

while((res = patt.exec(str)) !== null) {
    var msg = '찾음 : ' + res[0] + '. ';
    msg += '다음 매칭은 : ' + patt.lastIndex;
    console.log(msg);
}

결과)
찾음 : is. 다음 매칭은 : 4
찾음 : is. 다음 매칭은 : 7


RegExp 객체의 test() 메소드는 찾는 문자열이 존재하는지 boolean 값을 반환합니다.


var str = "This is test.";
var patt = new RegExp("is");
var res = patt.test(str);

결과)
true


RegExp 객체와 // 로 둘러싸인 정규식 객체는 동일하게 사용되어 집니다.

반응형