Maison > interface Web > js tutoriel > Comment puis-je simuler des assertions Lookbehind négatives en JavaScript ?

Comment puis-je simuler des assertions Lookbehind négatives en JavaScript ?

Mary-Kate Olsen
Libérer: 2024-12-26 16:27:13
original
751 Les gens l'ont consulté

How Can I Simulate Negative Lookbehind Assertions in JavaScript?

Obtenir une fonctionnalité d'analyse négative en JavaScript

Les assertions d'analyse négative permettent de faire correspondre une chaîne qui ne commence pas par un ensemble de caractères spécifique. Malgré le manque de prise en charge explicite des lookbehinds négatifs dans JavaScript, il existe des alternatives viables.

À partir de 2018, les assertions Lookbehind ont été incorporées dans la spécification ECMAScript :

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

// Negative lookbehind:
(?<!...)
Copier après la connexion

Pre -Approche 2018

Alternativement, si des regards négatifs sont indisponible, envisagez l'approche suivante :

  1. Inversez la chaîne d'entrée.
  2. Faire correspondre une expression régulière inversée.
  3. Inversez et reformatez les correspondances résultantes.

Pour exemple :

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]) : 'Ø'
    );
  });
};
Copier après la connexion

Exemple 1 : Pour faire correspondre "m" dans "jim" ou "m", mais pas dans "jam" :

test(['jim', 'm', 'jam'], /m(?!([abcdefg]))/);
Copier après la connexion

Sortie :

jim true token: m
m true token: m
jam false token: Ø
Copier après la connexion

Exemple 2 : Pour faire correspondre "max-height" mais pas "line-height" :

test(['max-height', 'line-height'], /thgieh(?!(-enil))/);
Copier après la connexion

Sortie :

max-height true token: height
line-height false token: Ø
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal