Heim > Web-Frontend > js-Tutorial > Wie kann ich einen negativen Lookbehind in regulären JavaScript-Ausdrücken simulieren?

Wie kann ich einen negativen Lookbehind in regulären JavaScript-Ausdrücken simulieren?

Barbara Streisand
Freigeben: 2024-12-14 15:48:11
Original
634 Leute haben es durchsucht

How Can I Simulate Negative Lookbehind in JavaScript Regular Expressions?

JavaScript-Äquivalent von Negative Lookbehind

Negative Lookbehinds, die mit Zeichenfolgen übereinstimmen, die nicht mit einem bestimmten Zeichensatz beginnen, werden von nicht direkt unterstützt Reguläre JavaScript-Ausdrücke. Es gibt jedoch alternative Ansätze, um ähnliche Ergebnisse zu erzielen.

Positive Lookahead und String-Umkehr

Da JavaScript positive Lookahead (?=) unterstützt, umfasst eine Methode Folgendes:

  1. Umkehren der Eingabezeichenfolge.
  2. Verwenden eines umgekehrten regulären Ausdrucks mit positivem Wert Lookahead.
  3. Umkehren und Neuformatieren der Übereinstimmungen.

Beispiel:

const reverse = s => s.split('').reverse().join('');
const regexp = /m(?!([abcdefg]))/;

test(['jim', 'm', 'jam'], regexp);

function test(strings, regexp) {
  strings.map(reverse).forEach((s, i) => {
    match = regexp.test(s);
    console.log(strings[i], match, 'Token: ', match ? reverse(regexp.exec(s)[0]) : 'Ø');
  });
}
Nach dem Login kopieren

Ergebnisse:

jim true Token: m
m true Token: m
jam false Token: Ø
Nach dem Login kopieren

Lookbehind Assertions-Unterstützung (Seit 2018)

Im Jahr 2018 wurden Lookbehind-Behauptungen, einschließlich negativer Lookbehinds, Teil der ECMAScript-Sprachspezifikation. Sie können wie folgt verwendet werden:

Negatives Lookbehind:

(?<!...)
Nach dem Login kopieren

Positives Lookbehind:

(?<=...)
Nach dem Login kopieren

Beispiel:

Passend „max-height“, aber nicht „line-height“:

regexp = /thgieh(?!(-enil))/;
test(['max-height', 'line-height'], regexp);
Nach dem Login kopieren

Ergebnisse:

max-height true Token: height
line-height false Token: Ø
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich einen negativen Lookbehind in regulären JavaScript-Ausdrücken simulieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage