Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2016 browserübergreifend verfügbar.
Die sticky Zugriffseigenschaft von RegExp Instanzen gibt zurück, ob das y-Flag mit diesem regulären Ausdruck verwendet wird oder nicht.
RegExp.prototype.sticky hat den Wert true, wenn das y-Flag verwendet wurde; andernfalls false. Das y-Flag zeigt an, dass der reguläre Ausdruck versucht, die Zielzeichenfolge nur vom durch die lastIndex Eigenschaft angegebenen Index aus zu matchen (und im Gegensatz zu einem globalen regulären Ausdruck nicht versucht, von späteren Indizes zu matchen).
Der Set-Zugang von sticky ist undefined. Sie können diese Eigenschaft nicht direkt ändern.
Für sowohl sticky als auch globale reguläre Ausdrücke gilt:
Jedoch ist das Verhalten, wenn das Matching fehlschlägt, für die exec() Methode unterschiedlich:
Für die exec() Methode verhält sich ein regulärer Ausdruck, der sowohl sticky als auch global ist, genauso wie ein sticky und nicht globaler regulärer Ausdruck. Da test() ein einfacher Wrapper um exec() ist, würde test() das globale Flag ignorieren und ebenfalls sticky Matches durchführen. Allerdings ist das globale Flag aufgrund vieler anderer Methoden, die speziell das Verhalten globaler regulärer Ausdrücke behandeln, im Allgemeinen orthogonal zum sticky Flag.
In mehreren Versionen hatte Firefox's SpiderMonkey-Engine einen Fehler in Bezug auf die ^-Assertion und das sticky Flag, der es ermöglichte, dass Ausdrücke, die mit der ^-Assertion beginnen und das sticky Flag verwenden, matchen konnten, wenn sie es nicht sollten. Der Fehler wurde einige Zeit nach Firefox 3.6 eingeführt (welches das sticky Flag, aber nicht den Fehler hatte) und 2015 behoben. Vielleicht wegen des Fehlers hebt die Spezifikation ausdrücklich hervor, dass:
Selbst wenn das y Flag mit einem Muster verwendet wird, matcht ^ immer nur am Anfang von Input, oder (wenn rer.[[Multiline]] true ist) am Anfang einer Zeile.
Beispiele für korrektes Verhalten:
| ECMAScript® 2027 Language Specification # sec-get-regexp.prototype.sticky |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.