Suchen und Finden
Service
Infos und Kontakt
KAPITEL 11 Mustervergleich mit regulären Ausdrücken ( S. 220)
Ein regulärer Ausdruck ist ein Objekt, das ein Zeichenmuster beschreibt. Die JavaScript- Klasse RegExp stellt reguläre Ausdrücke dar, und sowohl String als auch RegExp definieren Methoden, die mit regulären Ausdrücken mächtige Mustervergleiche und Suchenund- Ersetzen-Funktionen im Text ermöglichen. Reguläre Ausdrücke von JavaScript wurden in ECMAScript v3 standardisiert. JavaScript 1.2 implementiert den Teil der Funktionen für reguläre Ausdrücke, der von ECMAScript v3 verlangt wird, und JavaScript 1.5 implementiert den vollständigen Standard. Reguläre Ausdrücke in JavaScript orientieren sich stark an den regulären Ausdrücken der Programmiersprache Perl.
Vereinfacht gesagt implementiert JavaScript 1.2 die regulären Ausdrücke von Perl 4, und JavaScript 1.5 implementiert einen Großteil der regulären Ausdrücke von Perl 5. In diesem Kapitel wird zuerst die Syntax definiert, mit der reguläre Ausdrücke Textmuster beschreiben. Dann werden die Methoden von String und RegExp beschrieben, die reguläre Ausdrücke verwenden.
11.1 Reguläre Ausdrücke definieren
In JavaScript werden reguläre Ausdrücke durch RegExp-Objekte dargestellt. RegExp- Objekte können natürlich mit dem Konstruktor RegExp( ) erzeugt werden, aber häufiger wird eine spezielle Literalsyntax verwendet. So, wie String-Literale als Zeichen in Anführungszeichen angegeben werden, werden reguläre Ausdrücke als Zeichen in Schrägstrichen (/) angegeben. Ihr JavaScript-Code kann also zum Beispiel folgende Zeile enthalten: var muster = /s$/,
Diese Zeile erzeugt ein neues RegExp-Objekt und weist es der Variablen muster zu. Dieses besondere RegExp-Objekt entspricht jedem String, der mit dem Buchstaben »s« endet. (Wir werden uns gleich mit der Grammatik für die Definition von Mustern befassen.) Dieser reguläre Ausdruck hätte dementsprechend auch mit dem Konstruktor RegExp( ) definiert werden können:
var muster = new RegExp("s$"),
Das Erzeugen eines RegExp-Objekts mit der Literalsyntax oder mit dem Konstruktor RegExp( ) ist der einfache Teil. Die schwierigere Aufgabe ist es, das gewünschte Zeichenmuster mit der Syntax der regulären Ausdrücke zu beschreiben. JavaScript übernimmt ziemlich viel von der Syntax von regulären Ausdrücken, die von Perl verwendet wird. Wenn Sie also ein erfahrener Perl-Programmierer sind, wissen Sie bereits, wie in Java- Script Muster beschrieben werden.
Musterspezifikationen für reguläre Ausdrücke bestehen aus einer Reihe von Zeichen. Die meisten Zeichen, darunter auch alle alphanumerischen, beschreiben einfach Zeichen, die wortwörtlich übereinstimmen müssen. Daher entspricht der reguläre Ausdruck /java/ jedem String, der den Teilstring »java« enthält. Andere Zeichen werden in regulären Ausdrücken nicht wortwörtlich verwendet, sondern haben eine besondere Bedeutung. Der reguläre Ausdruck /s$/ enthält zum Beispiel zwei Zeichen. Das erste, das »s«, passt wortwörtlich auf sich selbst. Das zweite, das »$«, ist ein besonderes Metazeichen, das das Ende des Strings bezeichnet. Daher entspricht dieser reguläre Ausdruck allen Strings, die den Buchstaben s als letztes Zeichen enthalten.
Die folgenden Abschnitte beschreiben die verschiedenen Zeichen und Metazeichen, die in JavaScript in regulären Ausdrücken verwendet werden. Beachten Sie aber, dass dieses Buch kein vollständiges Tutorial über die Grammatik von regulären Ausdrücken bieten kann. Alle Einzelheiten zur Syntax finden Sie in einem Buch über Perl, zum Beispiel Programmieren mit Perl von Larry Wall et al. (O’Reilly Verlag).
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.; Ersparnis im Vergleich zur Printversion





















