0 votes

PHP simple regex

Je veux valider une chaîne de caractères uniquement si elle contient des caractères '0-9' d'une longueur comprise entre 7 et 9.

Je dispose de [0-9]{7,9}, mais cela correspond également à une chaîne de dix caractères, ce que je ne veux pas.

Merci.

4voto

Michael Madsen Points 30610

Vous voudrez utiliser ^[0-9]{7,9}$ .

^ correspond au début de la chaîne, tandis que $ correspond à la fin.

3voto

Paul Dixon Points 122033

Si vous voulez trouver des nombres de 7 à 9 chiffres à l'intérieur d'une chaîne plus grande, vous pouvez utiliser un regard négatif en arrière et en avant pour vérifier que la correspondance n'est pas précédée ou suivie d'un chiffre.

(?<![0-9])[0-9]{7,9}(?![0-9])

Cela se décompose comme suit

  • (?<![0-9]) s'assurer que la correspondance suivante n'est pas précédée d'un chiffre
  • [0-9]{7,9} correspond à 7-9 chiffres selon vos besoins
  • (?![0-9]) s'assurer que le caractère suivant n'est pas un chiffre

Si vous voulez simplement vous assurer que la chaîne entière est un nombre de 7 à 9 chiffres, ancrez la correspondance au début et à la fin avec ^ et $.

^[0-9]{7,9}$

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X