Wie erreicht man die Regex-Lookbehind-Funktionalität in JavaScript?
Nov 13, 2024 pm 12:41 PMRegex Lookbehind-Alternative in JavaScript
Problem:
JavaScript bietet keine native Methode für Regex-Lookbehinds. Folglich schlägt der folgende reguläre Ausdruck, der in anderen Implementierungen effektiv funktioniert, in JavaScript fehl:
(?<!filename)\.js$
Dieser reguläre Ausdruck zielt darauf ab, mit der Erweiterung „.js“ am Ende einer Zeichenfolge übereinzustimmen, jedoch nur, wenn dies der Fall ist ohne vorangestelltes „filename.js“.
Lösung:
Ein Ansatz zur Simulation eines regulären Ausdrucks Lookbehind in JavaScript beinhaltet die Verwendung von Hilfsfunktionen. Eine einfachere alternative Regex erzielt jedoch das gewünschte Ergebnis:
^(?:(?!filename.js$).)*.js$
Erklärung:
Diese Regex verwendet einen negativen Lookahead, um zu überprüfen, ob jedes Zeichen in der Zeichenfolge dies tut stimmt nicht mit dem Ausdruck „filename.js“ gefolgt vom Ende der Zeichenfolge überein. Nur dann kann dieses Zeichen mit dem regulären Ausdruck übereinstimmen. Nachfolgend finden Sie eine Aufschlüsselung des regulären Ausdrucks:
^ # Start of string (?: # Try to match the following: (?! # First assert that we can't match the following: filename.js # filename.js $ # and end-of-string ) # End of negative lookahead . # Match any character )* # Repeat as needed .js # Match .js $ # End of string
Verbesserte Lösung:
Eine effizientere Methode, um das gleiche Ergebnis zu erzielen, ist die Verwendung des folgenden regulären Ausdrucks:
^(?!.*filename.js$).*\.js$
Dieser reguläre Ausdruck stellt sicher, dass die gesamte Zeichenfolge nicht „filename.js“ enthalten darf und stimmt anschließend mit jeder Zeichenfolge überein, die mit endet „.js.“
Das obige ist der detaillierte Inhalt vonWie erreicht man die Regex-Lookbehind-Funktionalität in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Ersetzen Sie Stringzeichen in JavaScript

Benutzerdefinierte Google -Search -API -Setup -Tutorial

8 atemberaubende JQuery -Seiten -Layout -Plugins

Erstellen Sie Ihre eigenen AJAX -Webanwendungen

10 JavaScript & JQuery MVC -Tutorials
