Heim  >  Artikel  >  Web-Frontend  >  Wie erreicht man die Regex-Lookbehind-Funktionalität in JavaScript?

Wie erreicht man die Regex-Lookbehind-Funktionalität in JavaScript?

DDD
DDDOriginal
2024-11-13 12:41:02642Durchsuche

How to Achieve Regex Lookbehind Functionality in JavaScript?

Regex 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!

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