Eventuelle Modifizierer werden hinter den schließenden Schrägstrich gesetzt:Variablevar r = /abc/; var i = text.search(r);direktvar i = text.search(/abc/);
var r = /abc/gi;Hier werden alle Ziffern durch ein Kanalgitter (#) ersetzt:
text = text.replace(/\d/g, '#');
var r = new RegExp('abc');
var i = text.search(r);
Eventuelle Modifizierer können in einem optionalen zweiten Parameter übergeben werden:var r = new RegExp('abc', 'i');
Hier werden alle Ziffern durch ein Kanalgitter (#) ersetzt:var r = new RegExp('\\d', 'g');
text = text.replace(r, '#');
| Eigenschaft | Beschreibung |
| Betrifft nur das globale RegExp-Objekt | |
| $1...$9 | Speicherung von bis zu 9 Textteilen, die beim letzten Ausdruck mittels geklammerter Ausdrücke definiert wurden. Hier wird im Nachhinein das gefundene Wort ('Max') ausgegeben: /(\w+)/.test('Max und Moritz'); alert(RegExp.$1);
|
| lastMatch | Liefert die zuletzt gefundene Zeichenfolge |
| leftContext | Zeichenfolge vor dem letzten Treffer, hier 'www.':/goo/.test('www.google.com'); alert(RegExp.leftContext);
|
| rightContext | Zeichenfolge nach dem letzten Treffer, hier 'gle.com':/goo/.test('www.google.com'); alert(RegExp.rightContext);
|
| lastParen | Letzter Textteil aufgrund geklammerten Ausdrucks, falls vorhanden, hier 'goo':/(goo)/.test('www.google.com'); alert(RegExp.lastParen);
|
| Betrifft nur RegExp-Instanzen | |
| source | Enthält eine Kopie des zuletzt angewendeten Regulären Ausdrucks. Hier wird der Ausdruck ('\w+') noch einmal ausgegeben: var r=/\w+/; alert(r.source); |
| global | Bool'scher Wert: letzter Ausdruck besitzt das g-Flag. |
| ignoreCase | Bool'scher Wert: letzter Ausdruck besitzt das i-Flag. |
| multiline | Bool'scher Wert: letzter Ausdruck besitzt das m-Flag. |
| lastIndex | Enthält den Index des Zeichens hinter dem letzten Treffer, bzw. 0, falls nichts gefunden wurde. Hier wird die Position des Blanks hinter 'und' geliefert, also 7: var r=/und/g; r.exec('Max und Moritz'); alert(r.lastIndex);
Diese Eigenschaft wird nur gesetzt, wenn der Ausdruck das g-Flag besitzt. |
| Methode | Beschreibung |
| compile() | Ändert den Ausdruck zur Laufzeit und liefert dessen literale Form.var r = new RegExp();
r.compile('abc');
Eventuelle Modifizierer können in einem optionalen zweiten Parameter übergeben werden.Hier wird z.B. '/abc/g' angezeigt: alert(r.compile('abc', 'g'));
|
| exec() | Führt eine Treffersuche durch und liefert den gefundenen Textteil. Falls keine Treffer vorhanden sind, wird null geliefert. Hier wird die erste Ziffernfolge ('1998') extrahiert: alert(/\d+/.exec('Im Jahre 1998 gab es 281 Sonnentage.'));
Die Trefferposition (9) wird angezeigt:alert(/\d+/.exec('Im Jahre 1998 gab es 281 Sonnentage.').index);
Anzeige des Textes, auf den der Ausdruck angewendet wird:alert(/\d+/.exec('Im Jahre 1998 gab es 281 Sonnentage.').input);
Es wird immer nur bis zum ersten Treffer gesucht, d.h. der Schalter g ist bei exec() obsolet.
Werden Klammerungen verwendet, dann liefert die Funktion bei Erfolg ein Array, wobei Element[0] den gefundenen Textteil enthält, während die Elemente[1...N] (analog $1...$9) die mittels geklammerter Ausdrücke gefundenen Textteile enthalten.Nachfolgend wird die Syntax eines Datumstextes geprüft; der Ausdruck gibt das Format vor: - 1 oder 2 Ziffern (für Tag) - ein beliebiges Trennzeichen - 1 oder 2 Ziffern (für Monat) - das selbe Trennzeichen - 4 Ziffern (für Jahr) Ausserdem wird im Erfolgsfall aufgrund der Klammerungen ein Array geliefert: Element[0]: das komplette Datum Element[1]: Tag Element[2]: Trennzeichen Element[3]: Monat Element[4]: Jahr Anschließend werden die Datumselemente grob auf Bereichsüberschreitung geprüft: var a = /(\d{1,2})(.)(\d{1,2})\2(\d{4})/.exec('Es geschah am 13-7-1998.');
alert(a && a[1]>0 && a[1]<32 && a[3]>0 && a[3]<13 && a[4]>1970 && a[4]<2100);
|
| test() | Prüft auf existierendes Muster und liefert Bool'schen Wert zurück. Im Beispiel wird geprüft, ob ein Mozilla-Browser verwendet wird: alert(/moz/i.test(navigator.appCodeName)); Es wird immer nur bis zum ersten Treffer gesucht, d.h. der Schalter g ist bei test() obsolet.
|
var txt = 'Geboren am 17.5.1977, Zugriffe: 3'; var arr = txt.match(/\d+/g);Durch match() werden auch die Eigenschaften $1...$9 des RegExp-Objekts geupdatet.
var nr = '(0621)123-4567'; nr = nr.replace(/[\(\)-]/g, '');
Weil runde Klammern Metazeichen sind, mussten sie hier per Escapezeichen (Backslash) entschärft werden.var name = 'Alfons Meier'; name = name.replace(/(\w+)\s(\w+)/, '$2, $1');Statt eines Ersatz-Strings kann auch eine Funktion angegeben werden.
var txt = '<b>hallo</b>';
txt = txt.replace(/<|>/g, function(s){return s=='<'?'<':'>'});
alert('abcde'.search(/def/));
alert('abcdefgh'.search(/def/));
Es wird immer nur bis zum ersten Treffer gesucht, d.h. der Schalter g ist bei search() obsolet.var txt = 'a,b, c, d, e'; var arr = txt.split(/\s*,\s*/);
Es wird immer global gesucht, d.h. der Schalter g ist bei split() obsolet.| template |