IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

preg_match sur une suite de chiffres


Sujet :

Langage PHP

  1. #1
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Points : 267
    Points
    267
    Par défaut preg_match sur une suite de chiffres
    Bonjour,

    Quelque m'échappe, une demi heure que je suis une erreur "toute bête" je pense, je comprends pas.
    Je cherche a vérifier que $idNews ci-dessous est bienun nombre de 4 à 10 caractères, et cela me renvoie no !! Savez-vous pourquoi s'il vous plait ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	$idNews=1101092;
    	if(preg_match("/^[0-9]{4-10}/",$idNews)){
    		echo "yes\n";
    	}
    	else{
    		echo "no\n";
    	}
    Merci beaucoup

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    C'est une virgule qu'il faut dans le quantificateur. D'autre part si tu veux limiter le nombre de caractères maximum tu dois ajouter une ancre de fin de chaîne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( preg_match('/^[0-9]{4,10}$/D', $idNews) )
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( preg_match('/^[0-9]{4,10}\z/', $idNews) )
    Attention tous de même: si ton id n'est pas censé avoir de zéros à gauche (par exemple: 0001) ce test peut être complètement faux. Dans ce cas il faut changer la pattern en if ( preg_match('/^[1-9][0-9]{3,9}\z/', $idNews) ), mais dans ce cas, le mieux adapté (et élégant à mon sens) est d'utiliser filter_var:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $result = filter_var($idNews, FILTER_VALIDATE_INT, ['options'=>['min_range'=>1000, 'max_range'=>9999999999]]);
    var_dump($result);
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  3. #3
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Points : 267
    Points
    267
    Par défaut
    Citation Envoyé par CosmoKnacki Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( preg_match('/^[0-9]{4,10}$/D', $idNews) )

    C'est sur que avec {4-10} au lieu de {4,10} ça allait pas fonctionné... y a des jours où il vaut mieux allumer son ordinateur

    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/01/2010, 14h17
  2. ODS - format sur une suite de caractères
    Par juju44 dans le forum Macro
    Réponses: 3
    Dernier message: 23/03/2009, 10h34
  3. calcul de durée sur une suite de données
    Par madousn dans le forum Requêtes
    Réponses: 4
    Dernier message: 24/06/2008, 10h04
  4. [Excel/VBA] Requete SQL avec clause sur une suite de Cellule
    Par Myogtha dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 21/02/2007, 17h36
  5. Réponses: 12
    Dernier message: 26/08/2006, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo