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:
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]) : 'Ø'); }); }
Ergebnisse:
jim true Token: m m true Token: m jam false Token: Ø
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:
(?<!...)
Positives Lookbehind:
(?<=...)
Beispiel:
Passend „max-height“, aber nicht „line-height“:
regexp = /thgieh(?!(-enil))/; test(['max-height', 'line-height'], regexp);
Ergebnisse:
max-height true Token: height line-height false Token: Ø
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!