Regex alternative pour l'analyse négative en JavaScript
En JavaScript, les assertions d'analyse négative ne sont pas directement prises en charge. Cependant, il existe des moyens d'obtenir des fonctionnalités similaires.
Considérez l'expression régulière suivante :
(?<filename)\.js$
Cette expression régulière correspond aux chaînes se terminant par .js, à l'exception de filename.js. Dans les implémentations d'expressions régulières qui prennent en charge le lookbehind, cette expression fonctionnerait comme prévu.
Alternative à l'aide d'un lookahead négatif
Étant donné que JavaScript n'a pas de lookbehind, nous pouvons utiliser un lookahead négatif à la place :
^(?:(?!filename\.js$).)*\.js$
Cette expression vérifie explicitement chaque caractère de la chaîne pour garantir que le négatif regarde derrière l'assertion (?!filename.js$) plus l'expression régulière restante ne correspondront pas. S'il ne correspond pas, le caractère est autorisé à correspondre.
Version simplifiée
Pour les versions JavaScript antérieures à ECMAScript 2018, la version simplifiée suivante peut être utilisée :
^(?!.*filename\.js$).*\.js$
Cette expression affirme que la chaîne ne contient nulle part filename.js et se termine 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!