Heim > Web-Frontend > js-Tutorial > Wie kann ich ein negatives Lookbehind in JavaScript Regex implementieren?

Wie kann ich ein negatives Lookbehind in JavaScript Regex implementieren?

Mary-Kate Olsen
Freigeben: 2024-12-19 06:53:13
Original
447 Leute haben es durchsucht

How Can I Implement Negative Lookbehind in JavaScript Regex?

So implementieren Sie negative Lookbehinds in JavaScript

JavaScript unterstützt nativ keine negativen Lookbehinds, was die Erstellung regulärer Ausdrücke behindert, die mit Zeichenfolgen übereinstimmen Beginnen Sie nicht mit bestimmten Zeichen.

Lösung mit Lookbehind-Assertions (nach 2018)

Im Jahr 2018 führte JavaScript Lookbehind-Behauptungen ein, die sowohl positive als auch negative Lookbehinds ermöglichten:

  • Positive Lookbehinds: (? <=...)
  • Negativ lookbehind: (?

Zum Beispiel stimmt der folgende reguläre Ausdruck mit dem Zeichen „m“ in „jim“ oder „m“ überein, aber nicht mit dem Zeichen „jam“. :

(?<!([abcdefg]))m
Nach dem Login kopieren

Lösung vor 2018

Vorher 2018 bestand eine Problemumgehung darin, die Eingabezeichenfolge umzukehren, sie mit einem umgekehrten regulären Ausdruck abzugleichen und dann die Übereinstimmungen umzukehren. Dieser Prozess kann wie folgt implementiert werden:

const reverse = s => s.split('').reverse().join('');

const test = (stringToTests, reversedRegexp) => stringToTests
  .map(reverse)
  .forEach((s,i) => {
    const match = reversedRegexp.test(s);
    console.log(stringToTests[i], match, 'token:', match ? reverse(reversedRegexp.exec(s)[0]) : 'Ø');
  });<p><strong>Beispiele</strong></p>
<p>Zur Veranschaulichung seiner Verwendung:</p>
<ul><li>Für die erste Frage, die in erwähnt wird Im Kontext würde der folgende reguläre Ausdruck mit „m“ in „jim“ oder „m“ übereinstimmen, aber nicht 'jam':</li></ul>
<pre class="brush:php;toolbar:false">test(['jim', 'm', 'jam'], /m(?!([abcdefg]))/)
Nach dem Login kopieren
  • Ein weiteres Beispiel, das mit „max-height“, aber nicht mit „line-height“ übereinstimmt:
test(['max-height', 'line-height'], /thgieh(?!(-enil))/)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich ein negatives Lookbehind in JavaScript Regex implementieren?. 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