Maison > interface Web > js tutoriel > Comment obtenir la fonctionnalité Regex Lookbehind en JavaScript ?

Comment obtenir la fonctionnalité Regex Lookbehind en JavaScript ?

DDD
Libérer: 2024-11-13 12:41:02
original
739 Les gens l'ont consulté

How to Achieve Regex Lookbehind Functionality in JavaScript?

Alternative Regex Lookbehind en JavaScript

Problème :

JavaScript n'offre pas de méthode native pour les regex lookbehinds. Par conséquent, l'expression régulière suivante, qui fonctionne efficacement dans d'autres implémentations, échoue en JavaScript :

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

Cette expression régulière vise à faire correspondre l'extension ".js" à la fin d'une chaîne, mais seulement si elle est non précédé de "filename.js."

Solution :

Une approche pour simuler une regex lookbehind en JavaScript implique l'utilisation de fonctions d'assistance. Cependant, une expression régulière alternative plus simple permet d'obtenir le résultat souhaité :

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

Explication :

Cette expression régulière utilise une analyse anticipée négative pour vérifier que chaque caractère de la chaîne le fait ne correspond pas à l'expression "filename.js" suivie de la fin de la chaîne. Ce n'est qu'alors que ce caractère pourra correspondre à l'expression régulière. Vous trouverez ci-dessous un aperçu de l'expression régulière :

^                 # Start of string
(?:               # Try to match the following:
 (?!              # First assert that we can't match the following:
  filename.js    # filename.js
  $               # and end-of-string
 )                # End of negative lookahead
 .                # Match any character
)*                # Repeat as needed
.js              # Match .js
$                 # End of string
Copier après la connexion

Solution améliorée :

Une méthode plus efficace pour obtenir le même résultat consiste à utiliser l'expression régulière suivante :

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

Cette expression régulière affirme que la chaîne entière ne doit pas contenir "filename.js" et correspond ensuite à toute chaîne se terminant par ".js."

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal