Baseline Widely available
Eine Disjunktion spezifiziert mehrere Alternativen. Jede Alternative, die mit der Eingabe übereinstimmt, führt dazu, dass die gesamte Disjunktion übereinstimmt.
Syntaxalternative1|alternative2
alternative1|alternative2|alternative3|â¦
Parameter
alternativeN
Ein alternatives Muster, bestehend aus einer Sequenz von Atomen und Assertions. Das erfolgreiche Ãbereinstimmen einer Alternative führt dazu, dass die gesamte Disjunktion übereinstimmt.
Der |
Operator im regulären Ausdruck trennt zwei oder mehr Alternativen. 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 sie gruppieren.
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 von a
in der ersten Alternative die Möglichkeit besteht, bc
in der zweiten Alternative auszuwählen und eine erfolgreiche Ãbereinstimmung zu erzielen. Dieser Prozess wird Backtracking 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 einer Lookbehind umgekehrt ist).
Beispiele Ãbereinstimmung von DateierweiterungenIm folgenden Beispiel werden Dateierweiterungen mit dem gleichen Code gematcht wie im Artikel über die Eingangsgrenzwert-Assertion:
function isImage(filename) {
return /\.(?:png|jpe?g|webp|avif|gif)$/i.test(filename);
}
isImage("image.png"); // true
isImage("image.jpg"); // true
isImage("image.pdf"); // false
Spezifikationen Browser-Kompatibilität Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4