(PHP) Expression reguliere simple but noob...

Fermé
Defaite - 1 avril 2007 à 13:37
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 3 avril 2007 à 12:55
Bonjour à tous,

Voila mon probleme. Je veux etre sur que dans un formulaire, l'utilisateur à bien mis dans un <input> ce format :

[numerique]x[numerique]


exemple :

60x60


(Des dimensions en clair)

Je me suis donc fait mon petit ereg :

if (ereg("[^0-9x0-9$]",$Lavariable))


Mais ca ne marche pas completement, c'est le meilleur que j'ai trouvé mais si jamais j'elevais mon "x" il validerais quand même le format...

Merci d'avance pour votre aide :)
A voir également:

3 réponses

ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
3 avril 2007 à 12:06
mmmh je ne connais pas bien l'utilisation de ereg mais je pense qu'il doit falloir séparer correctement les chiffres du x (avec des parenthèses?)

je peux cependant ton conseiller une méthode un peu plus longue mais qui va marcher.
Avec un explode par exemple.

$var = $_POST['machin']; //sensé contenir ton format

$tab = explode("x",$var); // on sépare les 2 dimensions de ton format

$erreur=true;

if (count($tab)==2) { // si le format est bien composé de 2 parties
if (is_numeric($tab[0]) && is_numeric($tab[1])) { /* si les 2 parties sont bien numériques */
$erreur=false;
}
}

if (!$erreur) {
echo "C'est bon!!!";
}


en gros voila ce qui me vient à l'esprit.
1
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
3 avril 2007 à 12:55
Bonjour,

L'expression rationnelle que tu recherches serait plutôt celle-ci :

if (ereg("^[0-9]+x[0-9]+$",$Lavariable))

Que l'on peut diviser en trois blocs :
^[0-9]+ : au début de la chaine, un ou plusieurs chiffres
x : au milieu de la chaine, la lettre x
[0-9]+$ : en fin de chaine, un ou plusieurs chiffres.

Ce que tu as écrit n'est pas du tout une expression rationnelle valide. En effet, les [] désignent un ensemble de caractères possibles, sans notion d'ordre, mais ne désigne qu'un seul caractère.
De plus, le ^ mis à l'intérieur de ces crochets signifie "tout sauf ce qui suit". Bref, ton expression rationnelle ne devait pas souvent être vérifiée !
1
UP
0