Maison >interface Web >js tutoriel >Comment restreindre la longueur des caractères dans les expressions régulières à l'aide de Lookahead ?

Comment restreindre la longueur des caractères dans les expressions régulières à l'aide de Lookahead ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-03 16:50:11545parcourir

How to Restrict Character Length in Regular Expressions Using Lookahead?

Restriction de la longueur des caractères dans les expressions régulières

Votre expression régulière initiale autorisait une longueur de caractères illimitée, mais lorsque vous avez tenté de la limiter à 15 caractères avec le quantificateur {1,15}, vous avez rencontré une erreur. En effet, les quantificateurs ne peuvent pas être appliqués aux ancres, telles que l'ancre ^ début de chaîne.

Solution utilisant Lookahead

Pour restreindre efficacement la longueur des caractères, vous peut utiliser une anticipation positive ancrée au début de la chaîne :

^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&amp;*;:,<>?()"]*

Cette anticipation garantit que la chaîne suivante correspond à 1 à 15 caractères (spécifié par le quantificateur {1,15}) et se termine immédiatement après la correspondance. L'ancre $ indique la fin de la chaîne.

Évitement des quantificateurs limitatifs

Utilisation d'un quantificateur à la fin de l'expression régulière, tel que ^[a-zA- Z0-9]*[^$%^&*;:,<>?()"]{1,15}$, restreindrait à tort la longueur de la deuxième classe de caractères uniquement à 1 à 15 caractères. Cela ne limiterait pas la longueur de la chaîne entière.

Comment fonctionne la recherche anticipée

La recherche anticipée ( ?=.{1,15}$) évalue les 1 à 15 caractères suivants, y compris le caractère de nouvelle ligne à la fin de la chaîne (en raison de l'ancre $). l'expression renvoie vrai, sinon faux.

Gestion des séquences de nouvelle ligne

Si votre entrée peut contenir des séquences de nouvelle ligne, vous pouvez remplacer le caractère générique . -construction de personnage :

^(?=[\s\S]{1,15}$)[a-zA-Z0-9]*[^$%^&amp;*;:,<>?()"]*

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:
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