ActionScript® 3.0 Referenzhandbuch für die Adobe® Flash®-Plattform
Home  |  Liste der Pakete und Klassen ausblenden |  Pakete  |  Klassen  |  Neue Funktionen  |  Stichwortverzeichnis  |  Anhänge  |  Warum auf Englisch?
Filter: Daten werden vom Server abgerufen...
Daten werden vom Server abgerufen...
Oberste Ebene 

RegExp  - AS3

PaketOberste Ebene
Klassepublic dynamic class RegExp
VererbungRegExp Inheritance Object

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Die RegExp-Klasse ermöglicht Ihnen den Einsatz regulärer Ausdrücke. Reguläre Ausdrücke sind Muster, die Sie in Such- und Ersetzungsvorgängen in Strings verwenden können.

Ein neues RegExp-Objekt erstellen Sie mithilfe des Konstruktors new RegExp() oder per Zuweisung eines RegExp-Literals zu einer Variable:

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

Weitere Informationen finden Sie unter „Verwenden von regulären Ausdrücken“ im ActionScript 3.0 Entwicklerhandbuch.

Beispiele anzeigen

Verwandte API-Elemente



Öffentliche Eigenschaften
 EigenschaftDefiniert von
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
  dotall : Boolean
[schreibgeschützt] Gibt an, ob ein Punkt (.) in einem regulären Ausdruck nach Zeilenumbrüchen sucht.
RegExp
  extended : Boolean
[schreibgeschützt] Gibt an, ob für den regulären Ausdruck der erweiterte Modus verwendet werden soll.
RegExp
  global : Boolean
[schreibgeschützt] Gibt an, ob für den regulären Ausdruck eine globale Suche verwendet werden soll.
RegExp
  ignoreCase : Boolean
[schreibgeschützt] Gibt an, ob der reguläre Ausdruck die Groß-/Kleinschreibung ignoriert.
RegExp
  lastIndex : Number
Gibt die Indexposition im String an, ab der die nächste Suche beginnen soll.
RegExp
  multiline : Boolean
[schreibgeschützt] Gibt an, ob das m-Flag (multiline) gesetzt wurde.
RegExp
  source : String
[schreibgeschützt] Gibt das Muster des regulären Ausdrucks an.
RegExp
Öffentliche Methoden
 MethodeDefiniert von
  
RegExp(re:String, flags:String)
Dient zur Erstellung eines regulären Ausdrucks aus zwei Strings.
RegExp
  
Führt in dem gegebenen String „str“ eine Suche nach dem regulären Ausdruck durch.
RegExp
 Inherited
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
Object
 Inherited
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
Object
 Inherited
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
Object
 Inherited
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
Object
  
Testet in dem gegebenen String „str“ auf Übereinstimmung mit dem regulären Ausdruck.
RegExp
 Inherited
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas.
Object
 Inherited
Gibt das angegebene Objekt als String zurück.
Object
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
Eigenschaftendetails

dotall

Eigenschaft
dotall:Boolean  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Gibt an, ob ein Punkt (.) in einem regulären Ausdruck nach Zeilenumbrüchen sucht. Verwenden Sie das s-Flag, um einen regulären Ausdruck zu erstellen, der dotall = true setzt.



Implementierung
    public function get dotall():Boolean

Beispiel  ( Verwendung dieses Beispiels )
Aus dem folgenden Beispiel geht die Wirkung des s-Flags (dotall) bei einem regulären Ausdruck hervor:
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)); 
   

extended

Eigenschaft 
extended:Boolean  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Gibt an, ob für den regulären Ausdruck der erweiterte Modus verwendet werden soll. Befindet sich ein RegExp-Objekt im erweiterten Modus, werden Leerraumzeichen im Konstruktorstring ignoriert. Dadurch können die Konstruktoren lesbarer gestaltet werden.

Verwenden Sie das x-Flag, um einen regulären Ausdruck zu erstellen, der extended = true setzt.



Implementierung
    public function get extended():Boolean

Beispiel  ( Verwendung dieses Beispiels )
Im folgenden Beispiel werden verschiedene Möglichkeiten gezeigt, um den gleichen regulären Ausdruck zu erstellen. In allen Fällen soll mit dem regulären Ausdruck nach dem Telefonnummernmuster xxx-xxx-xxxx oder (xxx) xxx-xxxx oder (xxx)xxx-xxxx gesucht werden. Im zweiten regulären Ausdruck wird das x-Flag verwendet, wodurch die Leerräume im String ignoriert werden.
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

global

Eigenschaft 
global:Boolean  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Gibt an, ob für den regulären Ausdruck eine globale Suche verwendet werden soll. Wenn global == true, wird die lastIndex-Eigenschaft gesetzt, nachdem eine Übereinstimmung gefunden wurde. Wenn das nächste Mal eine Suche ausgelöste wird, beginnt die Engine für reguläre Ausdrücke ab der Position lastIndex in dem String. Verwenden Sie das g-Flag, um einen regulären Ausdruck zu erstellen, der global auf true setzt.



Implementierung
    public function get global():Boolean

Beispiel  ( Verwendung dieses Beispiels )
Aus dem folgenden Beispiel geht die Wirkung des g-Flags (global) auf die exec()-Methode hervor:
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

ignoreCase

Eigenschaft 
ignoreCase:Boolean  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9

Gibt an, ob der reguläre Ausdruck die Groß-/Kleinschreibung ignoriert. Verwenden Sie das i-Flag, um einen regulären Ausdruck zu erstellen, der ignoreCase = true setzt.



Implementierung
    public function get ignoreCase():Boolean

Beispiel  ( Verwendung dieses Beispiels )
Aus dem folgenden Beispiel geht hervor, welche Wirkung das Setzen des i-Flags (ignoreCase) hat:
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

lastIndex

Eigenschaft 
lastIndex:Number

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Gibt die Indexposition im String an, ab der die nächste Suche beginnen soll. Diese Eigenschaft wirkt sich auf die exec()- und test()-Methode der RegExp-Klasse aus. Allerdings ignorieren die match()-, replace()- und search()-Methoden der String-Klasse die lastIndex-Eigenschaft und beginnen die Suche immer ab dem Anfang eines Strings.

Wenn die exec()- oder test()-Methode eine Übereinstimmung findet, und das g-Flag (global) für diesen regulären Ausdruck auf true gesetzt ist, setzt die Methode automatisch die lastIndex-Eigenschaft auf die Indexposition des Zeichens nach dem letzten Zeichen im gefundenen passenden Teilstring der letzten Suche. Ist das g-Flag (global) auf false gesetzt, wird die lastIndex-Eigenschaft von der Methode nicht gesetzt.

Sie können die lastIndex-Eigenschaft setzen, um die Anfangsposition in dem String zu setzen, in dem nach einem regulären Ausdruck gesucht werden soll.



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

Beispiel  ( Verwendung dieses Beispiels )
Aus dem folgenden Beispiel geht hervor, welche Wirkung das Setzen der lastIndex-Eigenschaft hat. Außerdem wird gezeigt, wie sie nach einem Aufruf der exec()-Methode bei einem regulären Ausdruck aktualisiert wird, in dem das g-Flag (global) gesetzt wurde:
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

multiline

Eigenschaft 
multiline:Boolean  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Gibt an, ob das m-Flag (multiline) gesetzt wurde. Ist das Flag gesetzt, wird mit dem Caret- (^) und dem Dollarzeichen ($) in einem regulären Ausdruck nach Übereinstimmungen vor und nach einem Zeilenumbruch gesucht. Verwenden Sie das m-Flag, um einen regulären Ausdruck zu erstellen, der multiline = true setzt.



Implementierung
    public function get multiline():Boolean

Beispiel  ( Verwendung dieses Beispiels )
Aus dem folgenden Beispiel geht hervor, welche Wirkung das Setzen des m-Flags (multiline) hat:
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

source

Eigenschaft 
source:String  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Gibt das Muster des regulären Ausdrucks an.



Implementierung
    public function get source():String

Beispiel  ( Verwendung dieses Beispiels )
Der folgende Code gibt den source-Parameter für zwei reguläre Ausdrücke aus:
var re1:RegExp = /aabb/gi;
trace (re1.source); // aabb

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

RegExp

()Konstruktor
public function RegExp(re:String, flags:String)

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9

Dient zur Erstellung eines regulären Ausdrucks aus zwei Strings. Ein String definiert das Muster des regulären Ausdrucks, und der zweite definiert die im regulären Ausdruck verwendeten Flags.

Parameter
re:String — Das Muster des regulären Ausdrucks (wird auch Konstruktorstring genannt). Dies ist der Hauptteil des regulären Ausdrucks (der Teil, der innerhalb der Schrägstriche („/“) vorkommt).

Hinweise:

  • Die einleitenden und abschließenden Schrägstriche („/“) dürfen Sie nicht einbinden. Sie werden nur eingesetzt, wenn Sie ein reguläres Ausdrucksliteral definieren, ohne den Konstruktor zu verwenden. Die beiden folgenden regulären Ausdrücke sind beispielsweise gleichwertig:
     var re1:RegExp = new RegExp("bob", "i"); 
            var re2:RegExp = /bob/i;
  • Um in einem regulären Ausdruck, der mit der Konstruktormethode RegExp() definiert wird, eine Metasequenz zu verwenden, die mit dem rückwärtigen Schrägstrich (\) beginnt, z. B. \d (was einer beliebigen Ziffer entspricht), geben Sie den rückwärtigen Schrägstrich zweimal ein. Die beiden folgenden regulären Ausdrücke sind beispielsweise gleichwertig:
     var re1:RegExp = new RegExp("\\d+", ""); 
            var re2:RegExp = /\d/;

    Im ersten Ausdruck müssen Sie in diesem Fall den rückwärtigen Schrägstrich zweimal eingeben, da der erste Parameter der Konstruktormethode RegExp() ein String ist und in einem Stringliteral ein rückwärtiger Schrägstrich zweimal eingegeben werden muss, damit er als einfacher rückwärtiger Schrägstrich erkannt wird.

 
flags:String — Die Modifizierer des regulären Ausdrucks. Dazu zählen die folgenden Zeichen:
  • g – Wenn Sie die replace()-Methode der String-Klasse verwenden, geben Sie diesen Modifizierer an, um alle Übereinstimmungen zu ersetzen und nicht nur die erste. Dieser Modifizierer entspricht der Eigenschaft global der RegExp-Instanz.
  • i – Der reguläre Ausdruck wird ohne Berücksichtigung der Groß-/Kleinschreibung ausgewertet. Dieser Modifizierer entspricht der Eigenschaft ignoreCase der RegExp-Instanz.
  • s – Der Punkt (.) sucht nach Zeilenumbruchzeichen. Hinweis: Dieser Modifizierer entspricht der Eigenschaft dotall der RegExp-Instanz.
  • m – Das Caretzeichen (^) und das Dollarzeichen ($) stimmen vor und nach einem Zeilenumbruch überein. Dieser Modifizierer entspricht der Eigenschaft multiline der RegExp-Instanz.
  • x – Leerraumzeichen im re-String werden ignoriert, sodass Sie besser lesbare Konstruktoren schreiben können. Dieser Modifizierer entspricht der Eigenschaft extended der RegExp-Instanz.

Alle anderen Zeichen im flags-String werden ignoriert.

Methodendetails

exec

()Methode
AS3 function exec(str:String):Object

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Führt in dem gegebenen String str eine Suche nach dem regulären Ausdruck durch.

Ist das g-Flag (global) für den regulären Ausdruck not gesetzt, so beginnt die Suche am Anfang des Strings (bei Indexposition 0); die Suche ignoriert die lastIndex-Eigenschaft des regulären Ausdrucks.

Ist das g-Flag (global) für den regulären Ausdruck gesetzt, so beginnt die Suche bei der Indexposition, die durch die lastIndex-Eigenschaft des regulären Ausdrucks angegeben wird. Wird nach einem Teilstring gesucht, ändert sich die lastIndex-Eigenschaft so, dass sie der Position des Endes der Übereinstimmung entspricht.

Parameter

str:String — Der String, der durchsucht werden soll.

Rückgabewerte
Objectnull, wenn keine Übereinstimmung gefunden wird; andernfalls ein Objekt mit einer der folgenden Eigenschaften:
  • Ein Array, in dem Element 0 den vollständigen, übereinstimmenden Teilstring enthält, und dessen andere Elemente (1 bis n) Teilstrings enthalten, die in Klammern eingeschlossenen Gruppen im regulären Ausdruck entsprechen
  • index – Die Zeichenposition des übereinstimmenden Teilstrings innerhalb des Strings
  • input – Der String (str)

Verwandte API-Elemente


Beispiel  ( Verwendung dieses Beispiels )
Wenn das g-Flag (global) im regulären Ausdruck nicht gesetzt ist, können Sie mit exec() nach der ersten Übereinstimmung im String suchen:
         var myPattern:RegExp = /(\w*)sh(\w*)/ig;   
         var str:String = "She sells seashells by the seashore";
         var result:Object = myPattern.exec(str);
         trace(result);
         

Das result-Objekt wird auf folgende Werte gesetzt:

  • result[0] wird auf "She" gesetzt (die vollständige Übereinstimmung).
  • result[1] wird auf einen leeren String gesetzt (die erste übereinstimmende in Klammern eingeschlossene Gruppe).
  • result[2] wird auf "e" gesetzt (die zweite übereinstimmende in Klammern eingeschlossene Gruppe).
  • result.index wird auf 0 gesetzt.
  • result.input wird auf den Eingabestring gesetzt: "She sells seashells by the seashore".

Im folgenden Beispiel wird das g-Flag (global) im regulären Ausdruck gesetzt, sodass Sie exec() wiederholt verwenden können, um mehrere Übereinstimmungen zu finden:

         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);
         }
         

Der Code ergibt die folgende Ausgabe.


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

test

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

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Prüft den gegebenen String str auf eine Übereinstimmung mit dem regulären Ausdruck.

Ist das g-Flag (global) für den regulären Ausdruck not gesetzt, so beginnt die Suche am Anfang des Strings (bei Indexposition 0); die Suche ignoriert die lastIndex-Eigenschaft des regulären Ausdrucks.

Ist das g-Flag (global) für den regulären Ausdruck gesetzt, so beginnt die Suche bei der Indexposition, die durch die lastIndex-Eigenschaft des regulären Ausdrucks angegeben wird. Wird nach einem Teilstring gesucht, ändert sich die lastIndex-Eigenschaft so, dass sie der Position des Endes der Übereinstimmung entspricht.

Parameter

str:String — Der zu testende String.

Rückgabewerte
Booleantrue, wenn es eine Übereinstimmung gibt; andernfalls false.

Beispiel  ( Verwendung dieses Beispiels )

Das folgende Beispiel veranschaulicht die Verwendung der test()-Methode bei einem regulären Ausdruck, in dem das g-Flag (global) wie folgt gesetzt ist:
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
RegExpExample.as

Aus diesem Beispiel geht hervor, wie Sie mithilfe von regulären Ausdrücken Strings parsen und einen neuen String oder einen booleschen Wert, der auf dem übergebenen String basiert, zurückgeben. Die informalizeGreeting()-Methode ersetzt einfach das WortHello durch Hi, wobei die Groß- oder Kleinschreibung keine Rolle spielt. Außerdem wird der Nachname aus dem Namen im String entfernt (vorausgesetzt, dass der Name dem angegebenen Muster entspricht). In den validateEmail()- und validatePhoneNumber()-Methoden wird der übergebene String wird überprüft, um zu sehen, ob sein Muster einer gültigen E-Mail-Adresse oder einem bestimmten Telefonnummernmuster entspricht. Auf der Grundlage der Ergebnisse geben die Methoden boolesche Werte zurück.
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;
        }
    }
}




[ X ]Warum auf Englisch?
Inhalt des ActionScript 3.0-Referenzhandbuchs wird in englischer Sprache angezeigt

Nicht alle Teile des ActionScript 3.0-Referenzhandbuchs wurden in alle Sprachen übersetzt. Wenn der Text zu einem Sprachelement nicht übersetzt wurde, wird er auf Englisch angezeigt. Zum Beispiel wurden die Informationen zur ga.controls.HelpBox-Klasse nicht in andere Sprachen übersetzt. In der deutschen Version des Referenzhandbuchs erscheint der Abschnitt zur ga.controls.HelpBox-Klasse deshalb auf Englisch.