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); ![]() |
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); ![]() 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)); ![]() |
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, '');
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/));
var txt = 'a,b, c, d, e'; var arr = txt.split(/\s*,\s*/);
template | ![]() |