2009-09-16 10 views
0

Je veux valider une chaîne que si elle contient les caractères « 0-9 » de longueur entre 7 et 9.PHP regex simple,

Ce que j'est [0-9] {7,9}, mais cela correspond à une chaîne de dix caractères aussi, que je ne veux pas.

Merci.

+0

$ Voir http://stackoverflow.com/questions/1435435/another-javascript-regular-expression-problem – Dirk

Répondre

3

Si vous voulez trouver les numéros de 7-9 chiffres dans une chaîne plus grande, vous pouvez utiliser a negative lookbehind and lookahead pour vérifier le match est pas précédé ou suivi d'un chiffre

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

Ce se décompose comme

  • (?<![0-9]) assurer le prochain match n'est pas précédé par un chiffre
  • [0-9]{7,9} correspondent 7-9 chiffres que vous avez besoin
  • (?![0-9]) assurer le caractère suivant n'est pas un chiffre

Si vous voulez simplement pour assurer l'intégralité de la chaîne est un nombre à deux chiffres 7-9, ancrer le match au début et à la fin avec^et

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

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

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