Heim >Web-Frontend >js-Tutorial >Wie kann ich negative Lookbehind-Behauptungen in JavaScript simulieren?

Wie kann ich negative Lookbehind-Behauptungen in JavaScript simulieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-26 16:27:13703Durchsuche

How Can I Simulate Negative Lookbehind Assertions in JavaScript?

Negative Lookbehind-Funktionalität in JavaScript erreichen

Negative Lookbehind-Behauptungen ermöglichen den Abgleich einer Zeichenfolge, die nicht mit einem bestimmten Zeichensatz beginnt. Trotz des Mangels an expliziter Unterstützung für negative Lookbehinds in JavaScript gibt es praktikable Alternativen.

Ab 2018 wurden Lookbehind-Assertions in die ECMAScript-Spezifikation integriert:

// Positive lookbehind:
(?<=...)

// Negative lookbehind:
(?<!...)

Pre -Ansatz 2018

Alternativ, wenn negativ Lookbehinds nicht verfügbar sind, ziehen Sie den folgenden Ansatz in Betracht:

  1. Kehren Sie die Eingabezeichenfolge um.
  2. Übereinstimmung mit einem umgekehrten regulären Ausdruck.
  3. Kehren Sie das Ergebnis um und formatieren Sie es neu Übereinstimmungen.

Zum Beispiel:

const reverse = (string) => {
  return string.split('').reverse().join('');
};

const test = (inputStrings, reversedRegex) => {
  inputStrings.map(reverse).forEach((reversedString, idx) => {
    const match = reversedRegex.test(reversedString);
    console.log(
      inputStrings[idx],
      match,
      'token:',
      match ? reverse(reversedRegex.exec(reversedString)[0]) : 'Ø'
    );
  });
};

Beispiel 1: Um „m“ in „jim“ oder „m“ zu finden, aber nicht drin „jam“:

test(['jim', 'm', 'jam'], /m(?!([abcdefg]))/);

Ausgabe:

jim true token: m
m true token: m
jam false token: Ø

Beispiel 2: Passend zu „max-height“, aber nicht „Zeilenhöhe“:

test(['max-height', 'line-height'], /thgieh(?!(-enil))/);

Ausgabe:

max-height true token: height
line-height false token: Ø

Das obige ist der detaillierte Inhalt vonWie kann ich negative Lookbehind-Behauptungen in JavaScript simulieren?. 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