블로그 이미지

Rurony's Training Gym

Rurony의 트레이닝 도장! by Rurony


'정규표현식'에 해당되는 글 1건

  1. 2010.12.16 정규 표현식 (Regular Expression)

정규 표현식 (Regular Expression)


정규 표현식(Regular Expression)

자바스크립트의  정규 표현식은 문자열에서 특정 내용을 찾거나 대체 또는 발췌하는데 사용.

 

사용하는 메소드

regexp.exec, regexp.test, string.match, string.replace, string.search, string.split 등

 

정규표현식 객체 생성

    정규 표현식 리터럴 사용

        var my_regexp = /"(?:\\.|[^\\\"])*"/g;

   

        정규 표현식 플래그

        g  : Global(여러번 일치함, 정확한 의미는 메소드에 따라 다름)
        i  : Insensitive (대소문자를 구분하지 않음)
        m  : Multiline(^과 $이 라인 끝 문자에 일치할 수 있음)

 

    RegExp 생성자 사용

        var my_regexp = new RegExp("\"(?:\\.|[^\\\\\\\"])*\"", 'g');

       

        RegExp 객체의 속성
        global  : g 플래그가 사용된 경우 true
        ignoreCase : i 플래그가 사용된 경우 true
        lastIndex : 다음 exec 실행을 위한 시작점을 나타냄. 초기값을 0
        multiline  : m 플래그가 사용된 경우 true
        source  : 정규 표현식의 소스 텍스트

 

구성 요소

^ : 문자열의 시작
$ : 문자열의 끝

 

수량자
{m, n} : m에서 n번 반복
? : 0 또는 한번 반복 {0,1}
* : 0번 이상 반복 {0,}
+ : 한번 이상 반복 {1,}

 

클래스
[-] : 범위 ex) [a-z]
[^] : 부정(제외) ex) [^?#] : '?', '#'를 제외한 모든 문자

이스케이프 (\)
\d : 숫자문자 [0-9]와 동일
\D : 숫자문자 아님 [^0-9]와 동일
\s : 공백문자
\S : 공백문자 아님

...

 

선택

| : ex) "into".match(/in|int)

 

그룹

\1,\2,... 의 표현으로 그룹에 대한 참조가능

캡처 : '()'로 묶인 정규 표현식 선택

비캡처 : '(?:)'

긍정형 룩어헤드 : '(?=)' [좋은점 아님]

부정형 룩어헤드 : '(?!)' [좋은점 아님]

 

사용 예제

String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, '');
}
var strTest = '   abcd     efgh   ';
document.writeln(strTest.trim());  //abcd     efgh

 

var isEmail = function (str) {
    var emailEx1 = /[A-Za-z0-9_\-]@[A-Za-z0-9_\-]+\.[A-Za-z]+/;
    var emailEx2 = /[A-Za-z0-9_\-]@[A-Za-z0-9_\-]+\.[A-Za-z0-9_\-]+\.[A-Za-z]+/;
    var emailEx3 = /[A-Za-z0-9_\-]@[A-Za-z0-9_\-]+\.[A-Za-z0-9_\-]+\.[A-Za-z0-9_\-]+\.[A-Za-z]+/;
 
    if (emailEx1.test(str)) { return true; }
    if (emailEx2.test(str)) { return true; }
    if (emailEx3.test(str)) { return true; }
 
    return false;
}

 

Top

prev 1 next