[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Regular_expressions/Modifier [Back]  [Original]

Modifier: (?ims-ims:...) - JavaScript | MDN

Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.

View in English Always switch to English

Modifier: (?ims-ims:...)

Baseline 2025
Neu verfgbar

Seit September 2025 funktioniert diese Funktion auf aktuellen Gerten und in aktuellen Browserversionen. Auf lteren Gerten oder in lteren Browsern funktioniert sie mglicherweise nicht.

Ein Modifier berschreibt die Flag-Einstellungen in einem bestimmten Teil eines regulren Ausdrucks. Er kann verwendet werden, um Flags zu aktivieren oder zu deaktivieren, die die Bedeutungen bestimmter Regex-Syntaxelemente ndern. Diese Flags sind i, m und s.

In diesem Artikel

Syntax

regex
(?flags1:pattern)
(?flags1-flags2:pattern)

Hinweis: JavaScript hat nur die "bounded" Modifier-Form, bei der das Muster innerhalb der Modifier-Gruppe platziert wird. Die meisten anderen Sprachen, die Modifier untersttzen, haben eine "unbounded" Form, bei der der Modifier bis zum Ende der am nchsten liegenden umschlieenden Gruppe angewendet wird.

Parameter

flags1 Optional

Eine Zeichenkette von Flags, die aktiviert werden sollen. Kann jede Kombination von i, m und s enthalten.

flags2 Optional

Eine Zeichenkette von Flags, die deaktiviert werden sollen. Kann jede Kombination von i, m und s enthalten, darf jedoch keine Flags enthalten, die in flags1 enthalten sind.

pattern

Ein Muster, das alles enthlt, was Sie in einem Regex-Literal verwenden knnen, einschlielich einer Disjunction.

Beschreibung

Einige Flags ndern die Bedeutungen von Regex-Syntaxelementen:

  • Das i-Flag macht den Regex durch alle Literalzeichen und Zeichenklassen implizit in Kleinbuchstaben zu deklariertem insensitive.
  • Das m-Flag ndert das Verhalten von Eingabegrenzen-Assertions ^ und $, um den Anfang und das Ende jeder Zeile sowie den Anfang und das Ende der Eingabezeichenkette zu erfassen.
  • Das s-Flag ndert das Verhalten des Wildcard-Zeichens . so, dass es jedes Zeichen einschlielich Zeilenendzeichen erfasst.

Manchmal mchten Sie, dass diese nderungen nur in einem bestimmten Teil eines Regex-Musters wirksam werden. Sie knnen dies tun, indem Sie diesen Teil in einen Modifier einschlieen. Zum Beispiel:

js
/(?i:Hello) world/;

In diesem Regex ist das i-Flag nur fr den Hello-Teil des Musters aktiviert. Der world-Teil ist gro-/klein-schreibungssensitiv. Daher passt es zu Hello world, hello world und HELLO world, aber nicht zu HELLO WORLD. Das Folgende ist gleichwertig, indem das i-Flag global aktiviert und dann fr den world-Teil deaktiviert wird:

js
/Hello (?-i:world)/i;

Die Parameter flags1 und flags2 knnen jede Kombination von i, m und s enthalten. Die Flags mssen jedoch eineindeutig zwischen flags1 und flags2 sein Sie knnen ein Flag nicht doppelt aktivieren oder deaktivieren oder ein Flag aktivieren und dann sofort deaktivieren.

Die Parameter flags1 und flags2 sind optional, aber mindestens einer muss nicht leer sein. (?flags1-:pattern) ist ein Modifier, der nur Flags aktiviert (quivalent zu (?flags1:pattern)). (?-flags2:pattern) ist ein Modifier, der nur Flags deaktiviert. (?:pattern) ist nur eine nicht-erfassende Gruppe, und (?-:pattern) ist ein Syntaxfehler.

Andere Flags sind in einem Modifier unsinnig und fhren zu Syntaxfehlern, wenn sie eingeschlossen werden:

  • Die Flags g und y bestimmen das Verhalten mehrerer Aufrufe von exec() und beeinflussen das bereinstimmungsverhalten des gesamten Regex.
  • Das d-Flag aktiviert zustzliche Informationen im exec()-Ergebnis und beeinflusst das bereinstimmungsverhalten des gesamten Regex.
  • Die Flags u und v ndern das Verhalten der Regex-Engine auf eine Weise, die zu komplex ist, um lokal modifiziert zu werden. Sie haben auch globale Auswirkungen auf den Regex, wie das Fortschreiten des lastIndex.

Beispiele

bereinstimmung eines mehrzeiligen Formats nur am Anfang der Zeichenkette

Der folgende Regex definiert ein Format fr eine mehrzeilige Zeichenkette. Das erste ^ stellt den Anfang der gesamten Eingabezeichenkette dar, indem es sich innerhalb eines (?-m:)-Modifiers befindet, whrend alle anderen ^-Zeichen den Anfang einer Zeile darstellen:

js
const pattern = /(?-m:^)---\n^title:.*^slug:.*^---/ms;

const input = `---
title: "Modifier: (?ims-ims:...)"
slug: Web/JavaScript/Reference/Regular_expressions/Modifier
---`;

pattern.test(input); // true

// Extra line break at the start of string
const input2 = `\n${input}`;

pattern.test(input2); // false

Bestimmte Wrter ohne Bercksichtigung der Gro-/Kleinschreibung finden

Stellen Sie sich vor, Sie suchen alle Variablendeklarationen, die foo oder bar heien (da sie schlechte Namen sind). Das Wort kann in beliebiger Gro-/Kleinschreibung erscheinen, aber Sie wissen, dass das Schlsselwort immer in Kleinbuchstaben ist, also knnen Sie das tun:

js
const pattern = /(?:var|let|const) (?i:foo|bar)\b/;

pattern.test("let foo;"); // true
pattern.test("const BAR = 1;"); // true
pattern.test("Let foo be a number"); // false

Spezifikationen

Spezifikation
ECMAScript 2027 LanguageSpecification
# prod-RegularExpressionModifiers

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page