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