Tester une variable et savoir si un chiffre est présent

Résolu/Fermé
flexi2202 Messages postés 3803 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 1 février 2025 - 19 juil. 2022 à 10:34
flexi2202 Messages postés 3803 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 1 février 2025 - 22 juil. 2022 à 17:05

Bonjour a tous 

je souhaiterais pouvoir tester une variable et savoir si elle contient au moins un chiffre de 1 a 9

dans la même configuration  que lorsque je teste une variable afin de savoir si elle est bien numérique 

par exemple

else if($c <> filter_var($c, FILTER_VALIDATE_INT)) {
    echo "0-11"; 
}

Une des façons que j'ai trouvé c'est comme ceci

if(!preg_match('#[^1-9]#',$value))
{
    echo "Value is numeric";
}
else
{
    echo "Value not numeric";
}

mais ce qui m'ennuie c'est le else 

je souhaiterais plutôt avoir ceci par exemple

elseif(!preg_match('#[^1-9]#',$value))

{
    echo "Value not numeric";
}
A voir également:

5 réponses

jordane45 Messages postés 38429 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 19 février 2025 4 735
19 juil. 2022 à 12:30

Bonjour,

Il te suffit d'enlever le "NOT"  ( symbolisé par le point d'exclamation)


1
flexi2202 Messages postés 3803 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 1 février 2025 187
20 juil. 2022 à 14:57

bonjour jordane merci 

0
Utilisateur anonyme
19 juil. 2022 à 12:39

Bonjour

je ne code pas en PHP.

Mais les regex je maitrise,  et là franchement je ne comprends pas ta logique.

Ta question est

Tester une variable et savoir si un chiffre est présent

Et ta regex teste si le résultat n'est pas tout sauf un chiffre.

Et quand ce résultat n'est pas tout sauf un chiffre, tu affiches que la chaine est numérique ce qui n'est pas rigoureusement exact, c'est un nombre entier et positif

Enfin tu dis que tu veux coder un "else if" avec "par exemple" exactement le même test

  • donc ça ne viendra jamais dans ce else if.
  • et ça ne nous permet pas de savoir ce que tu veux faire...

Donc pour répondre "bêtement" au titre de ton message, pour tester si une chaine contient au moins un chiffre \d suffit.

Exemple en cliquant ici

Si comme le semble suggérer ton code, finalement tu veux savoir si la chaine est complément constituée de chiffres, ^\d+$ suffit

Exemple ici

Et si c'est autre chose que tu cherches, comme on te l'a déjà dit à maintes reprises, faut être explicite dans tes explications


1
Utilisateur anonyme
20 juil. 2022 à 15:15

De rien, cela dit \d ça valide qu'il y a au moins un chiffre, pas que tout le texte est constitué de chiffres....


1
flexi2202 Messages postés 3803 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 1 février 2025 187
20 juil. 2022 à 14:59

bonjour

un très grand merci pour l'aide et les explications 

en effet tu avais raison c 'est bien \d  qu'il me fallait et qui était suffisant 

a présent l'utilisateur ne sait pas rentrer autre que des chiffres

encore merci

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
flexi2202 Messages postés 3803 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 1 février 2025 187
22 juil. 2022 à 17:05

oui c'est bien cela qui m'intéressais

Encore merci 

0