PaketOberste Ebene
Klassepublic dynamic class RegExp
VererbungRegExp Inheritance Object

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

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 im Kapitel "Reguläre Ausdrücke" des Handbuchs Programmieren mit ActionScript 3.0.

Beispiele anzeigen

Siehe auch

String.match()
String.replace()
String.search()
Syntax für reguläre Ausdrücke


Öffentliche Eigenschaften
 EigenschaftDefiniert von
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
  dotall : Boolean
[read-only] Gibt an, ob ein Punkt (.) in einem regulären Ausdruck nach Zeilenumbrüchen sucht.
RegExp
  extended : Boolean
[read-only] Gibt an, ob für den regulären Ausdruck der erweiterte Modus verwendet werden soll.
RegExp
  global : Boolean
[read-only] Gibt an, ob für den regulären Ausdruck eine globale Suche verwendet werden soll.
RegExp
  ignoreCase : Boolean
[read-only] 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
[read-only] Gibt an, ob das m-Flag (multiline) gesetzt wurde.
RegExp
 Inheritedprototype : Object
[static] Ein Verweis auf das Prototypobjekt einer Klasse oder eines Funktionsobjekts.
Object
  source : String
[read-only] 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" nach einer Übereinstimmung mit dem regulären Ausdruck.
RegExp
 Inherited
Gibt das angegebene Objekt als String zurück.
Object
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
Eigenschaftsdetail
dotallEigenschaft
dotall:Boolean  [read-only]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

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

Siehe auch


Beispiel

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)); 
extendedEigenschaft 
extended:Boolean  [read-only]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

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

Siehe auch


Beispiel

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
globalEigenschaft 
global:Boolean  [read-only]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Gibt an, ob für den regulären Ausdruck eine globale Suche verwendet werden soll. Wenn global == true, wird die Eigenschaft lastIndex 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

Siehe auch


Beispiel

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
ignoreCaseEigenschaft 
ignoreCase:Boolean  [read-only]

Sprachversion : ActionScript 3.0
Player-Version : 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

Siehe auch


Beispiel

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
lastIndexEigenschaft 
lastIndex:Number  [read-write]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

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

Wenn die Methode exec() oder test() eine Übereinstimmung findet, und das g-Flag (global) für diesen regulären Ausdruck auf true gesetzt ist, setzt die Methode automatisch die Eigenschaft lastIndex 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 Eigenschaft lastIndex von der Methode nicht gesetzt.

Sie können die Eigenschaft lastIndex 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

Siehe auch


Beispiel

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
multilineEigenschaft 
multiline:Boolean  [read-only]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

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

Siehe auch


Beispiel

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
sourceEigenschaft 
source:String  [read-only]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Gibt das Muster des regulären Ausdrucks an.


Implementierung
    public function get source():String

Siehe auch


Beispiel

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*
Konstruktordetail
RegExp()Konstruktor
public function RegExp(re:String, flags:String)

Sprachversion : ActionScript 3.0
Player-Version : 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).

Hinweis:

  • 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, nicht nur die erste. Dieser Modifizierer entspricht der Eigenschaft global der RegExp-Instanz.
  • i – Bei der Auswertung des regulären Ausdrucks wird die Groß-/Kleinschreibung ignoriert. 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 ($) suchen nach Übereinstimmungen vor und nach einem Zeilenumbruch. Dieser Modifizierer entspricht der Eigenschaft multiline der RegExp-Instanz.
  • x – Leerraumzeichen im re-String werden ignoriert, sodass Sie mehr lesbare Konstruktoren schreiben können. Dieser Modifizierer entspricht der Eigenschaft extended der RegExp-Instanz.

Alle anderen Zeichen im flags-String werden ignoriert.

Siehe auch

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

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

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 Eigenschaft lastIndex 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 Eigenschaft lastIndex des regulären Ausdrucks angegeben wird. Wird nach einem Teilstring gesucht, ändert sich die Eigenschaft lastIndex 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 gefundenen passenden Teilstrings innerhalb des Strings
  • input – Der String (str)

Siehe auch


Beispiel
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
Player-Version : Flash Player 9

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 Eigenschaft lastIndex 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 Eigenschaft lastIndex des regulären Ausdrucks angegeben wird. Wird nach einem Teilstring gesucht, ändert sich die Eigenschaft lastIndex 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.

Siehe auch


Beispiel

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
Beispiele Verwendung von Beispielen
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;
        }
    }
}




 

Eine E-Mail an mich senden, wenn dieser Seite Kommentare hinzugefügt werden | Kommentarbericht

Aktuelle Seite: http://livedocs.adobe.com/flash/9.0_de/ActionScriptLangRefV3/RegExp.html