Java Script & DOM/Java Script

자바스크립트 정규표현 객체: RegExp

본클라쓰 2010. 12. 15. 13:47

 

 정규표현(A Regular expression)은 문자 패턴을 설명하는 객체이다. 정규표현을 사용하면 문자열을 검색할 때, 패턴을 사용해 문자열을 검색할 수 있다. 단순한 패턴은 하나의 문자이고, 좀 더 완벽한 패턴은 여러 개의 문자열로 구성되어 있으며 완벽한 패턴을 사용하면 파싱(parsing), 포맷 점검 등을 대신할 수 있다. 정규표현은 패턴 매칭과 "Search-and-replace" 함수를 사용하면 더욱 강력하게 사용될 수 있다.

 

 

정규표현객체 생성방법

var txt = new RegExp(pattern, modifiers);

 

또는 단순하게

 

var txt = /pattern/modifiers;

 

정규표현 객체를 생성할 때는 파라미터로 패턴과 수식어를 전달한다. 패턴은 비교할 문자열이며 수식어구는 옵션과 비슷하다.

 

 


RegExp modifiers(수식어구)

 

수식어구를 사용해 대소문자 구분(case-insensitive)와 전역 검색을 옵션을 부여할 수 있다.

 

수식어구

설 명

i

대소문자를 구분하지 않고 같은 문자열을 반환한다.(맨처음 나타나는 문자열)

g

모든 문자열을 검색해 일치하는 문자열 모두를 반환한다.

 

 

수식어구 사용 예)

첫 번째 예제) 문자열에서 대소문자를 구분하지 않고 매칭되는 문자열을 검색한다(맨 처음 나타나는 문자열만 출력)

 

var str = "Visit HOME, come back home";
var patt = /home/i;
document.write( str.match( patt ) );
 

결과) HOME

 

 

 

두 번째 예제) 문자열 전체를 검색해 같은 문자열을 반환한다.

 

str = "Is this all there is?";
patt = /is/g;
document.write( str.match( patt ) );


 

결과) is,is

 

 

 

세 번째 예제) 문자열 전체를 매칭시키며 대소문자를 구분하지 않고 검색한다.

 

str = "Is this all there is?";
patt = /is/gi;
document.write( str.match( patt ) );
 

결과) Is,is,is

 

 

RegExp 객체의 메소드

메소드

설 명

test(String str)

파라미터로 전달받은 str문자열을 패턴과 비교해 일치하는지 여부를 반환(참,거짓)

exec(String str)

파라미터로 전달받은 str문자열을 패턴과 비교해 일치하는 텍스트를 반환한다.

만약, 매칭되는 것을 찾을 수 없다면 null를 반환한다.

 

 

RegExp 객체의 메소드 사용 예제

test() 메소드 예제)

 

patt = new RegExp("e");
document.write( patt.test( "The best things in life are free" ) );

 

결과)  

 

 

 

exec() 메소드

 

patt = new RegExp( "e" );
document.write( patt.exec( "The best things in life are free" ) );

 

결과) e