Maison > interface Web > js tutoriel > le corps du texte

Comment implémenter des assertions Lookbehind dans JavaScript Regex ?

Linda Hamilton
Libérer: 2024-11-09 17:16:02
original
956 Les gens l'ont consulté

How to Implement Lookbehind Assertions in JavaScript Regex?

Javascript Regex : alternative aux assertions Lookbehind

Les implémentations Regex en Javascript n'ont pas le concept d'assertions lookbehind. Cela pose un défi dans la construction d'expressions régulières qui nécessitent cette fonctionnalité. Heureusement, il existe des méthodes alternatives pour obtenir des résultats similaires.

Considérez l'expression régulière suivante :

(?<!filename)\.js$
Copier après la connexion

Cette expression régulière correspond à ".js" à la fin d'une chaîne, à l'exclusion de "filename.js ". Cependant, sans prise en charge du lookbehind en Javascript, nous avons besoin d'une alternative.

L'une de ces alternatives consiste à étendre l'assertion lookbehind en une série de vérifications explicites de chaque caractère de la chaîne :

^(?:(?!filename\.js$).)*\.js$
Copier après la connexion

Cette regex se décompose comme suit :

  • ^ : Début de chaîne
  • (?:...)* : Parcourez l'expression suivante pour chaque caractère
  • (?!filename.js$) : analyse anticipée négative pour garantir que les caractères suivants ne correspondent pas à "filename.js"
  • . : faire correspondre un point
  • * : répéter la correspondance du point si nécessaire
  • .js : Correspond à ".js"
  • $ : Fin de chaîne

Alternativement, une solution plus simple est disponible :

^(?!.*filename\.js$).*\.js$
Copier après la connexion

Cette expression régulière vérifie essentiellement que la chaîne entière ne contient pas "filename.js" avant de correspondre à ".js".

En tirant parti de ces alternatives, nous pouvons implémenter une fonctionnalité d'expression régulière semblable aux assertions lookbehind en Javascript.

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