Heim >Web-Frontend >js-Tutorial >Wie implementiert man Lookbehind-Assertionen in JavaScript Regex?

Wie implementiert man Lookbehind-Assertionen in JavaScript Regex?

Linda Hamilton
Linda HamiltonOriginal
2024-11-09 17:16:021034Durchsuche

How to Implement Lookbehind Assertions in JavaScript Regex?

Javascript Regex: Alternative zu Lookbehind-Assertions

Regex-Implementierungen in Javascript fehlt das Konzept von Lookbehind-Assertions. Dies stellt eine Herausforderung beim Erstellen regulärer Ausdrücke dar, die diese Funktionalität erfordern. Glücklicherweise gibt es alternative Methoden, um ähnliche Ergebnisse zu erzielen.

Betrachten Sie den folgenden regulären Ausdruck:

(?<!filename)\.js$

Dieser reguläre Ausdruck stimmt mit „.js“ am Ende einer Zeichenfolge überein, mit Ausnahme von „Dateiname.js“. ." Ohne Lookbehind-Unterstützung in Javascript benötigen wir jedoch eine Alternative.

Eine solche Alternative besteht darin, die Lookbehind-Behauptung in eine Reihe expliziter Prüfungen für jedes Zeichen in der Zeichenfolge zu erweitern:

^(?:(?!filename\.js$).)*\.js$

Dieser reguläre Ausdruck gliedert sich wie folgt:

  • ^: Beginn von string
  • (?:...)*: Durchläuft den folgenden Ausdruck für jedes Zeichen
  • (?!filename.js$): Negativer Lookahead, um sicherzustellen, dass die nächsten Zeichen nicht übereinstimmen " Dateiname.js"
  • .: Passen Sie einen Punkt an
  • *: Wiederholen Sie den Punktabgleich nach Bedarf
  • .js: Übereinstimmung mit „.js“
  • $: Ende der Zeichenfolge

Alternativ ist eine einfachere Lösung verfügbar:

^(?!.*filename\.js$).*\.js$

Diese Regex überprüft im Wesentlichen die gesamte Zeichenfolge enthält nicht „filename.js“, bevor es mit „.js“ übereinstimmt.

Durch die Nutzung dieser Alternativen können wir Regex-Funktionalität implementieren Ähnlich wie Lookbehind-Behauptungen in Javascript.

Das obige ist der detaillierte Inhalt vonWie implementiert man Lookbehind-Assertionen in JavaScript Regex?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn