Restriction de la longueur des caractères dans une expression régulière
Lors de l'utilisation d'expressions régulières pour faire correspondre des modèles particuliers dans des chaînes, il est souvent nécessaire de restreindre le caractère Longueur pour assurer une correspondance précise. Dans l'exemple fourni :
var test = /^(a-z|A-Z|0-9)*[^$%^&*;:,<>()?""']*$/
Cette expression régulière correspond à toute chaîne composée de lettres ou de chiffres sans aucune longueur de caractère restreinte. Une tentative de limitation de la longueur des caractères à 15 à l'aide de [^$%^&*;:,<>()?""']*${1,15} entraîne une erreur.
Pour pour résoudre ce problème et appliquer une limite de caractères, utilisez une analyse anticipée ancrée au début de la chaîne :
^(?=.{1,15}$)...
Cette analyse anticipée vérifie si la chaîne correspond à 1 à 15 caractères mais exclut la nouvelle ligne à la fin (en raison de $). Il restreint la longueur de la chaîne entière d'entrée.
Utilisation d'un quantificateur à la fin, tel que [^$%^&*;:,<>()?""']{1,15 }, limitera uniquement la longueur de la deuxième classe de caractères, pas la chaîne entière.
Pour les chaînes pouvant contenir une séquence de nouvelle ligne, utilisez [sS] pour faire correspondre n'importe quelle caractère :
^(?=.[\s\S]{1,15}$)...
Cela garantit que la restriction de longueur de caractère s'applique à toute la chaîne, quels que soient les sauts de ligne.
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!