Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Disjunction: |
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
EineDisjunktion spezifiziert mehrere Alternativen. Jede Alternative, die mit der Eingabe übereinstimmt, führt dazu, dass die gesamte Disjunktion übereinstimmt.
In diesem Artikel
Syntax
alternative1|alternative2alternative1|alternative2|alternative3|…Parameter
alternativeNEin alternatives Muster, bestehend aus einer Sequenz vonAtomen und Assertions. Das erfolgreiche Übereinstimmen einer Alternative führt dazu, dass die gesamte Disjunktion übereinstimmt.
Beschreibung
Der| Operator im regulären Ausdruck trennt zwei oder mehrAlternativen. Das Muster versucht zuerst, mit der ersten Alternative zu übereinstimmen; falls es fehlschlägt, versucht es, mit der zweiten Alternative zu übereinstimmen und so weiter. Zum Beispiel passt das folgende Beispiel"a" statt"ab", weil die erste Alternative bereits erfolgreich übereinstimmt:
/a|ab/.exec("abc"); // ['a']Der| Operator hat die niedrigste Priorität in einem regulären Ausdruck. Möchten Sie eine Disjunktion als Teil eines größeren Musters verwenden, müssen Sie siegruppieren.
Wenn eine gruppierte Disjunktion mehr Ausdrücke danach hat, beginnt die Übereinstimmung, indem die erste Alternative ausgewählt und versucht wird, den Rest des regulären Ausdrucks zu matchen. Wenn der Rest des regulären Ausdrucks nicht übereinstimmt, versucht der Matcher stattdessen die nächste Alternative. Beispielsweise:
/(?:(a)|(ab))(?:(c)|(bc))/.exec("abc"); // ['abc', 'a', undefined, undefined, 'bc']// Not ['abc', undefined, 'ab', 'c', undefined]Dies ist, weil durch die Auswahl vona in der ersten Alternative die Möglichkeit besteht,bc in der zweiten Alternative auszuwählen und eine erfolgreiche Übereinstimmung zu erzielen. Dieser Prozess wirdBacktracking genannt, weil der Matcher zuerst über die Disjunktion hinausgeht und dann zurückkommt, wenn das nachfolgende Matching fehlschlägt.
Beachten Sie auch, dass Klammern innerhalb einer Alternative, die nicht gematcht wird,undefined im resultierenden Array produzieren.
Eine Alternative kann leer sein; in diesem Fall entspricht sie der leeren Zeichenkette (mit anderen Worten, sie passt immer).
Alternativen werden immer von links nach rechts versucht, unabhängig von der Matching-Richtung (die in einerLookbehind umgekehrt ist).
Beispiele
>Übereinstimmung von Dateierweiterungen
Im folgenden Beispiel werden Dateierweiterungen mit dem gleichen Code gematcht wie im Artikel über dieEingangsgrenzwert-Assertion:
function isImage(filename) { return /\.(?:png|jpe?g|webp|avif|gif)$/i.test(filename);}isImage("image.png"); // trueisImage("image.jpg"); // trueisImage("image.pdf"); // falseSpezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # prod-Disjunction> |