This page was saved using jaction on 2006-09-04 8:34:00.
Address: http://flexdocs.kr/docs/flex2/langref/RegExp.html
Title: RegExp (Flex™ 2 레퍼런스 가이드)  •  Size: 48251
Package톱 레벨
Classpublic dynamic class RegExp
InheritanceRegExp Inheritance Object

RegExp 클래스를 사용하면, 정규 표현을 처리할 수가 있습니다. 정규 표현이란, string내에서 검색을 실행하거나 string내의 텍스트를 옮겨놓거나 하는 경우에 사용할 수 있는 패턴입니다.

new RegExp() constructor    을 사용하는지, RegExp 리터럴을 변수에 할당하는 것에 의해, 새로운 RegExp object를 작성할 수가 있습니다.

 var pattern1:RegExp = new RegExp("test-\\d", "i");
     var pattern2:RegExp = /test-\d/i;
     

상세한 것에 대하여는, 「ActionScript 3.0 의 프로그래밍」의 「정규 표현의 사용」을 참조해 주세요.

View the examples

See also

String.match()
String.replace()
String.search()
정규 표현의 개요


Public property
 property정의
 Inheritedconstructor : Object
특정의 object 인스턴스의 클래스 object 또는 constructor    함수에의 참조입니다.
Object
  dotall : Boolean
[read-only] 정규 표현 패턴내의 닷 캐릭터 (. )(와)과 개행 캐릭터를 일치시킬지 어떨지를 지정합니다.
RegExp
  extended : Boolean
[read-only] 정규 표현에 확장 모드를 사용할지 어떨지를 지정합니다.
RegExp
  global : Boolean
[read-only] 정규 표현에 글로벌 조합을 사용할지 어떨지를 지정합니다.
RegExp
  ignoreCase : Boolean
[read-only] 정규 표현으로 대문자와 소문자의 구별을 무시할지 어떨지를 지정합니다.
RegExp
  lastIndex : Number
string내에서 다음번의 검색을 개시하는 인덱스 위치를 지정합니다.
RegExp
  multiline : Boolean
[read-only] m (multiline) 플래그를 설정할지 어떨지를 지정합니다.
RegExp
 Inheritedprototype : Object
[static] 클래스 또는 함수 object의 prototype object에의 참조입니다.
Object
  source : String
[read-only] 정규 표현의 패턴 부분을 지정합니다.
RegExp
Public Methods
 Methods정의
  RegExp (re:String , flags:String )
2 개의 string로부터 정규 표현을 작성할 수가 있습니다.
RegExp
  exec (str:String ):Object
지정된 string str 에 대해, 정규 표현을 검색합니다.
RegExp
 InheritedhasOwnProperty (name:String ):Boolean
object로 지정된 property가 정의되고 있는지 어떤지를 나타냅니다.
Object
 InheritedisPrototypeOf (theClass:Object ):Boolean
Object 클래스의 인스턴스가, Parameters로서 지정된 object의 prototype 체인내에 있을지 어떨지를 나타냅니다.
Object
 InheritedpropertyIsEnumerable (name:String ):Boolean
지정된 property가 존재해, 열거 가능한가 어떤가를 나타냅니다.
Object
 InheritedsetPropertyIsEnumerable (name:String , isEnum:Boolean = true):void
루프 처리에 대한 다이나믹 property의 가용성을 설정합니다.
Object
  test (str:String ):Boolean
지정된 string str 내에 정규 표현과 일치하는 substring가 있을지 어떨지를 테스트합니다.
RegExp
 InheritedtoString ():String
지정된 object의 string 표현을 돌려줍니다.
Object
 InheritedvalueOf ():Object
지정된 object의 원시적치를 돌려줍니다.
Object
property의 상세
dotallproperty
dotall:Boolean   [read-only]

정규 표현 패턴내의 닷 캐릭터 (. )(와)과 개행 캐릭터를 일치시킬지 어떨지를 지정합니다. dotall = true 를 설정하려면 , 정규 표현의 작성시에 s 플래그를 사용합니다.

Implements
    public function get dotall():Boolean

See also


Example
다음의 예는, 정규 표현에 s (dotall) 플래그를 설정했다 경우의 영향을 나타내고 있습니다.
var str:String = "<p>Hello\n"
        + "again</p>"
        + "<p>Hello</p>";

var pattern:RegExp = /<p>. *? <\/p>/;
trace(pattern.dotall) // false
trace(pattern.exec(str)); // <p>Hello</p>

pattern = /<p>. *? <\/p>/s;
trace(pattern.dotall) // true
trace(pattern.exec(str)); 
    

extendedproperty 
extended:Boolean   [read-only]

정규 표현에 확장 모드를 사용할지 어떨지를 지정합니다. RegExp object가 확장 모드의 경우, constructor    string내의 공백 캐릭터는 무시됩니다. 이것은 constructor    의 가독성을 높이기 (위해)때문에 일을 목적으로 합니다.

extended = true 로 설정하려면 , 정규 표현의 작성시에 x 플래그를 사용합니다.

Implements
    public function get extended():Boolean

See also


Example
다음의 예에서는, 같은 정규 표현을 다양한 방법으로 작성합니다. 각각의 방법으로, xxx-xxx-xxxx, (xxx) xxx-xxxx, 또는 (xxx) xxx-xxxx 의 몇개의 전화번호 패턴에 일치하는 정규 표현을 작성합니다. 2 번째의 정규 표현에서는 x 플래그를 사용하고 있어, string내의 공백 캐릭터는 무시됩니다.
var rePhonePattern1:RegExp = /\d{3}-\d{3}-\d{4}|\(\d{3}\) \s? \d{3}-\d{4}/; 
var str:String = "The phone number is (415)555-1212. ";

trace(rePhonePattern1.extended) // false
trace(rePhonePattern1.exec(str)); // (415)555-1212

var rePhonePattern2:RegExp = / \d{3}-\d{3}-\d{4}  |   \( \d{3} \) \ ?  \d{3}-\d{4}  /x; 
trace(rePhonePattern2.extended) // true
trace(rePhonePattern2.exec(str)); // (415)555-1212

globalproperty 
global:Boolean   [read-only]

정규 표현에 글로벌 조합을 사용할지 어떨지를 지정합니다. global == true 의 경우, 일치하는 것이 1 개 발견된 후에 lastIndex property가 설정됩니다. 다음번, 조합이 요구되었을 때에는, 정규 표현 엔진은 string의 lastIndex 위치로부터 조합을 개시합니다. globaltrue 로 설정하려면 , 정규 표현의 작성시에 g 플래그를 사용합니다.

Implements
    public function get global():Boolean

See also


Example
다음의 예는,exec() Methods에 g (global) 플래그를 설정했을 경우의 영향을 나타내고 있습니다.
var pattern:RegExp = /foo\d/; 
var str:String = "foo1 foo2";
trace(pattern.global); // false
trace(pattern.exec(str)); // foo1
trace(pattern.lastIndex); // 0
trace(pattern.exec(str)); // foo1

pattern = /foo\d/g;
trace(pattern.global); // true
trace(pattern.exec(str)); // foo1
trace(pattern.lastIndex); // 4
trace(pattern.exec(str)); // foo2

ignoreCaseproperty 
ignoreCase:Boolean   [read-only]

정규 표현으로 대문자와 소문자의 구별을 무시할지 어떨지를 지정합니다. ignoreCase = true 로 설정하려면 , 정규 표현의 작성시에 i 플래그를 사용합니다.

Implements
    public function get ignoreCase():Boolean

See also


Example
다음의 예는,i (ignoreCase) 플래그를 설정했을 경우의 영향을 나타내고 있습니다.
var pattern:RegExp = /bob/; 
var str:String = "Bob bob";
trace(pattern.ignoreCase); // false
trace(pattern.exec(str)); // bob

pattern = /bob/i;
trace(pattern.ignoreCase); // true
trace(pattern.exec(str)); // Bob

lastIndexproperty 
lastIndex:Number   [read-write]

string내에서 다음번의 검색을 개시하는 인덱스 위치를 지정합니다. 이 property는, RegExp 클래스의 exec() Methods와 test() Methods에 영향을 줍니다. 다만, String 클래스의 match() Methods,replace() Methods, 및 search() Methods는,lastIndex property를 무시해, 모든 검색을 string의 선두로부터 개시합니다.

exec() Methods 또는 test() Methods로 일치하는 것이 발견되어, 정규 표현으로 g (global) 플래그가 true 로 설정되어 있는 경우, Methods는 자동적으로, 마지막에 일치한 substring내의 마지막 캐릭터의다음에 있는 캐릭터의 인덱스 위치에 lastIndex property를 설정합니다. g (global) 플래그가 false 로 설정되어 있는 경우, Methods는 lastIndex property를 설정하지 않습니다.

lastIndex property를 설정하면, string내에서 정규 표현에 의한 검색을 개시하는 위치를 조정할 수 있습니다.

Implements
    public function get lastIndex():Number
    public function set lastIndex(value:Number ):void

See also


Example
다음의 예는,lastIndex property를 설정했을 경우의 영향을 나타내고 있습니다. 또,g (global) 플래그가 설정된 정규 표현에 대해 exec() Methods를 호출한 후에, 그 property가 어떻게 갱신되는지를 나타내고 있습니다.
var pattern:RegExp = /\w\d/g; 
var str:String = "a1 b2 c3 d4";
pattern.lastIndex = 2; 
trace(pattern.exec(str)); // b2
trace(pattern.lastIndex); // 5
trace(pattern.exec(str)); // c3
trace(pattern.lastIndex); // 8
trace(pattern.exec(str)); // d4
trace(pattern.lastIndex); // 11
trace(pattern.exec(str)); // null

multilineproperty 
multiline:Boolean   [read-only]

m (multiline) 플래그를 설정할지 어떨지를 지정합니다. 설정하는 경우, 정규 표현내의 caret (^)와 달러 기호 ($)는 개행 캐릭터의 전과 후에 일치합니다. multiline = true 로 설정하려면 , 정규 표현의 작성시에 m 플래그를 사용합니다.

Implements
    public function get multiline():Boolean

See also


Example
다음의 예는,m (multiline) 플래그를 설정했을 경우의 영향을 나타내고 있습니다.
var pattern:RegExp = /^bob/; 
var str:String = "foo\n"
                + "bob";
trace(pattern.multiline); // false
trace(pattern.exec(str)); // null

pattern = /^bob/m;
trace(pattern.multiline); // true
trace(pattern.exec(str)); // bob

sourceproperty 
source:String   [read-only]

정규 표현의 패턴 부분을 지정합니다.

Implements
    public function get source():String

See also


Example
다음의 코드는, 2 개의 정규 표현에 대해 source Parameters를 출력합니다.
var re1:RegExp = /aabb/gi;
trace (re1.source); // aabb

var re2:RegExp = new RegExp("x+y*", "i");
trace(re2.source); // x+y*

constructor    의 상세
RegExp()constructor   
public 함수 RegExp(re:String , flags:String )

2 개의 string로부터 정규 표현을 작성할 수가 있습니다. 정규 표현으로 사용하는 플래그를 정의하는 string의 2 개의 string로부터, 정규 표현을 작성할 수가 있습니다.

Parameters
re:String — 정규 표현의 패턴입니다. constructor    string고도 말합니다. 이것은 정규 표현의 메인이 되는 부분입니다. 즉,"/" 그리고 둘러싸이는 부분입니다.

메모 :

  • 개시와 말미의 "/" 캐릭터를 포함하지 말아 주세요. 이 캐릭터는, constructor    을 사용하지 않고 정규 표현 리터럴을 정의하는 경우에게만 사용합니다. 예를 들어, 다음의 2 개의 정규 표현은 동등합니다.
  •  var re1:RegExp = new RegExp("bob", "i"); 
            var re2:RegExp = /bob/i;
  • RegExp() constructor    Methods로 정의된 정규 표현 중(안)에서, 엔기호 (\)로부터 시작되는 메타시켄스 (임의의 숫자를 의미하는 \d 등)를 사용하려면 , 엔기호를 이중으로 입력할 필요가 있습니다. 예를 들어, 다음의 2 개의 정규 표현은 동등합니다.
  •  var re1:RegExp = new RegExp("\\d+", ""); 
            var re2:RegExp = /\d/;

    최초의 표현에서는, 엔기호를 이중으로 입력할 필요가 있습니다. 이것은,RegExp() constructor    Methods의 최초의 Parameters가 string이며, string 리터럴 중(안)에서는, 단일의 엔기호로서 인식되기 위해서(때문에)는 이중으로 엔기호를 입력할 필요가 있기 (위해)때문에입니다.

 
flags:String — 정규 표현의 수식자입니다. 이것에는 다음의 것이 포함됩니다.
  • g — String 클래스의 replace() Methods를 사용하는 경우, 이 수식자를 지정해, 최초로 일치하는 string 뿐만 아니라, 일치하는 모든 string를 옮겨놓습니다. 이 수식자는, RegExp 인스턴스의 global property에 대응합니다.
  • i — 정규 표현을 대문자와 소문자의 구별없음로 평가합니다. 이 수식자는, RegExp 인스턴스의 ignoreCase property에 대응합니다.
  • s — 닷 (. ) 캐릭터는 개행 캐릭터에 일치합니다. 이 수식자는, RegExp 인스턴스의 dotall property에 대응합니다.
  • m — caret (^) 캐릭터와 달러 기호 ($)는, 개행 캐릭터의 전후에 일치합니다. 이 수식자는, RegExp 인스턴스의 multiline property에 대응합니다.
  • xre string내의 공백 캐릭터를 무시합니다. 그 때문에, 가독성의 높은 constructor    을 작성할 수 있습니다. 이 수식자는, RegExp 인스턴스의 extended property에 대응합니다.

flags string내의 다른 캐릭터는, 모두 무시됩니다.

See also

Methods의 상세
exec()Methods
AS3 function exec(str:String ):Object

지정된 string str 에 대해, 정규 표현을 검색합니다.

정규 표현에 g (global) 플래그가 설정되지않은경우, string의 선두 (인덱스 위치 0)로부터 검색이 개시되어 정규 표현의 lastIndex property는 무시됩니다.

정규 표현에 g (global) 플래그가 설정되어 있는경우, 정규 표현의 lastIndex property로 지정된 인덱스 위치로부터 검색이 개시됩니다. 검색으로 substring가 일치하면,lastIndex property는 일치한 substring의 마지막 위치로 변경됩니다.

Parameters
str:String — 검색하는 string입니다.

반환값
Object — 일치가 발견되지 않는 경우는 null, 그 이외의 경우는, 다음에 나타내는 property를 가지는 object를 돌려줍니다.
  • 엘리먼트 0 에 완전 일치의 substring를 포함해, 다른 엘리먼트 (1 ~ n)에 정규 표현내의 괄호 지정된 그룹과 일치하는 substring를 포함한 배열
  • index — string내에서 일치하는 substring의 캐릭터의 위치
  • input — string (str)

See also


Example
정규 표현에 g (global) 플래그를 설정하지 않는경우,exec() 를 사용해, string내에서 최초로 일치하는 것을 검색할 수가 있습니다.
         var myPattern:RegExp = /(\w*) sh(\w*) /ig;   
         var str:String = "She sells seashells by the seashore";
         var result:Object = myPattern.exec(str);
         trace(result);
         

result object는 다음과 같이 설정됩니다.

다음의 예에서는, 정규 표현에 g (global) 플래그가 설정되어 있기 (위해)때문에,exec() 를 반복 사용해, 일치하는 것을 복수 검색할 수가 있습니다.

         var myPattern:RegExp = /(\w*) sh(\w*) /ig;  
         var str:String = "She sells seashells by the seashore";
         var result:Object = myPattern.exec(str);
                  while (result ! = null) {
             trace ( result.index, "\t", result);
             result = myPattern.exec(str);
         }
         

이 코드의 출력은, 다음과 같이 됩니다.


            0      She, , e
            10     seashells, sea, ells
            27     seashore, sea, ore
         

test()Methods 
AS3 function test(str:String ):Boolean

지정된 string str 내에 정규 표현과 일치하는 substring가 있을지 어떨지를 테스트합니다.

정규 표현에 g (global) 플래그가 설정되지않은경우, string의 선두 (인덱스 위치 0)로부터 검색이 개시되어 정규 표현의 lastIndex property는 무시됩니다.

정규 표현에 g (global) 플래그가 설정되어 있는경우, 정규 표현의 lastIndex property로 지정된 인덱스 위치로부터 검색이 개시됩니다. 검색으로 substring가 일치하면,lastIndex property는 일치한 substring의 마지막 위치로 변경됩니다.

Parameters
str:String — 테스트하는 string입니다.

반환값
Boolean — 일치가 존재하는 경우는 true, 그 이외의 경우는 false 를 돌려줍니다.

See also


Example
다음의 예는,g (global) 플래그가 설정되어 있는 정규 표현에 test() Methods를 사용하는 방법을 나타내고 있습니다.
var re1:RegExp = /\w/g;
var str:String = "a b c";
trace (re1.lastIndex); // 0
trace (re1.test(str)); // true
trace (re1.lastIndex); // 1
trace (re1.test(str)); // true
trace (re1.lastIndex); // 3
trace (re1.test(str)); // true
trace (re1.lastIndex); // 5
trace (re1.test(str)); // false

Examples

다음의 예는, 정규 표현을 사용해 string를 해석해, 건네받은 string에 근거해 새로운 string 또는 불리언 값을 돌려주는 방법을 나타내고 있습니다. 건네받은 string내에서, 대문자 소문자에 관계없이 Hello 라고 하는 말이 발견되면,informalizeGreeting() Methods는 이 말을 단순하게 Hi 에 옮겨놓습니다. 또, string내의 이름으로부터 성을 삭제합니다. 다만, 지정된 패턴에 이름이 일치하는 경우입니다. validateEmail() Methods와 validatePhoneNumber() Methods는, 건네받은 string의 패턴이 유효한 전자메일 주소 또는 특정의 전화번호의 패턴과 일치할지 어떨지를 체크해, 그 결과에 근거하는 불리언 값을 돌려줍니다.
package {
    import flash.display.Sprite;

    public class RegExpExample extends Sprite {        
        public function RegExpExample() {            
            var formalGreeting:String = "Hello, John Smith. ";
            trace(informalizeGreeting(formalGreeting));    // Hi, John.

            var validEmail:String = "name@domain.com";
            trace(validateEmail(validEmail));        // true
            
            var invalidEmail:String = "foo";
            trace(validateEmail(invalidEmail));  // false
            
            var validPhoneNumber:String = "415-555-1212";
            trace(validatePhoneNumber(validPhoneNumber));    // true
            
            var invalidPhoneNumber:String = "312-867-530999";
            trace(validatePhoneNumber(invalidPhoneNumber));  // false
        }
        private function informalizeGreeting(str:String) :String {
            var pattern:RegExp = new RegExp("hello, (\\w+) \\w+", "i");
            return str.replace(pattern, "Hi, $1");
        }
        private function validateEmail(str:String) :Boolean {
            var pattern:RegExp = /(\w|[_. \-])+@((\w|-)+\. ) +\w{2,4}+/;
            var result:Object = pattern.exec(str);
            if(result == null) {
                return false;
            }
            return true;
        }
        private function validatePhoneNumber(str:String) :Boolean {
            var pattern:RegExp = /^\d{3}-\d{3}-\d{4}$/;
            var result:Object = pattern.exec(str);
            if(result == null) {
                return false;
            }
            return true;
        }
    }
}






 

코멘트가 추가되었을 경우, 메일로 받기. | 코멘트 리포트

현재의 페이지: http://flexdocs.kr/docs/flex2/langref/RegExp.html