Lookahead et Lookbehind
Comprendre les sujets avancés des expressions régulières en JavaScript est bénéfique pour tout développeur souhaitant améliorer ses compétences en programmation. Parmi les fonctionnalités les plus avancées et puissantes de ce domaine figurent les assertions lookahead et lookbehind. Ces assertions permettent aux développeurs de rechercher des motifs dans du texte sans les inclure dans le résultat. Ce guide vise à offrir une exploration approfondie des assertions lookahead et lookbehind en JavaScript, accompagnée de nombreux exemples pratiques.
WARNING
Les expressions régulières peuvent être délicates et des cas limites peuvent exister. Surtout lorsque vous utilisez des concepts avancés comme le Lookahead et le Lookbehind. Utilisez des testeurs d'expressions régulières en ligne ou écrivez des tests unitaires pour valider vos expressions face à divers scénarios d'entrée afin de vous assurer qu'elles se comportent comme prévu.
Introduction aux assertions Lookahead et Lookbehind
Les assertions lookahead et lookbehind sont des assertions de largeur nulle, ce qui signifie qu'elles correspondent à une position dans la chaîne plutôt qu'à des caractères réels. Elles nous permettent de vérifier si un motif donné existe ou n'existe pas à un point précis de la chaîne. Remarque : Les moteurs JavaScript modernes (ES2018+) prennent en charge les assertions lookbehind de longueur variable, bien que certains environnements plus anciens puissent nécessiter des motifs de longueur fixe.
Lookahead positif
Une assertion lookahead positif vérifie l'existence d'un certain motif devant la position actuelle dans la chaîne. Elle est notée (?=...). L'exemple suivant est un lookahead positif pour trouver le mot « apple » suivi du mot « pie » :
Le lookaround en regexp JavaScript correspond aux caractères
Lookahead négatif
Une assertion lookahead négatif vérifie l'absence d'un certain motif devant la position actuelle. Elle est notée (?!...). L'exemple suivant est un lookahead négatif pour trouver le mot « apple » non suivi du mot « pie » :
La regexp JavaScript : le lookahead négatif
Lookbehind positif
Une assertion lookbehind positif vérifie l'existence d'un certain motif derrière la position actuelle dans la chaîne. Elle est notée (?<=...). Voici un exemple de code pour trouver le mot « pie » précédé du mot « apple » :
La regexp JavaScript : le lookbehind positif
Lookbehind négatif
Une assertion lookbehind négatif vérifie l'absence d'un certain motif derrière la position actuelle. Elle est notée (?<!...). Voici un exemple pour trouver le mot « pie » non précédé du mot « apple » :
Lookahead et Lookbehind
Applications pratiques du Lookahead et du Lookbehind
Validation de la force du mot de passe
Garantir des mots de passe forts est une exigence courante dans les applications web. Les assertions lookahead peuvent être utilisées pour valider diverses conditions de mot de passe sans consommer de caractères.
Dans cet exemple, nous avons validé un mot de passe qui doit contenir au moins une lettre majuscule, une lettre minuscule, un chiffre et un caractère spécial.
Mise en forme et analyse des données
Les assertions lookahead et lookbehind peuvent aider à la mise en forme et à l'analyse de structures de données complexes. Un bon exemple consiste à insérer des virgules dans une chaîne de nombres pour améliorer la lisibilité :
Conclusion
Maîtriser les assertions lookahead et lookbehind en JavaScript peut considérablement améliorer votre capacité à manipuler et à analyser des chaînes. Ces outils puissants offrent la flexibilité de vérifier des motifs sans consommer de caractères, ce qui les rend indispensables pour les tâches complexes de traitement de texte. En tirant parti de ces assertions, les développeurs peuvent créer des expressions régulières plus efficaces et performantes, conduisant à un code plus propre et plus facile à maintenir.
Pratique
Parmi les affirmations suivantes concernant les assertions lookahead et lookbehind en JavaScript, lesquelles sont correctes ?