Problème de IF qui commance par un (

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème de IF qui commance par un (

par mario » 19 mars 2006, 08:55

avec l'exemple que je t'ai donné ci dessus,
$str = '(514) 222-2222'; // ok
$str = '    (514) 222-2222      '; // ok
$str = '514 222-2222'; //ok
$str = '(514)2222222'; // ok
$str = '5142222222'; // ok
// etc etc etc
après, tu peux nettoyer la chaine de tout caractère non numérique pour l'insertion dans la base de donnée (on économise des octets :wink: )

par Lorenzo » 19 mars 2006, 08:52

donne les differentes possiblités, car j'ai pas compris le probleme de "l'extension"

pour infos : avec les REGEXP, tu peux tout faire !
le café, le menage, la vaisselle et meme les verifications tres pousses sur les chaines de caracteres ;)

toutes les infos : http://fr2.php.net/manual/fr/ref.pcre.php

par auclairp » 19 mars 2006, 08:47

tu as juste a modifier le masque pour ton N° ... tu aurais pu faire une petite recherche ... je ne connais pas tous les masques acceptables pour les N° Quebecois ...

disons que si les N° seront toujours formaté EXACTEMENT COMME CECI (514) 222-2222, tu peux faire un masque de REGEXP tres precise :

"#^\([0-9]{3}\) [0-9]{3}-[0-9]{4}$#"
J'ai chercher unpeu, mais je t'avour pas gros, j'ai pas vraiment compris ce que c'était, mais avec ta nouvelle formule ca fonctionne

Ton exemple est bon, je croyait que c'était pour inclure des carac spec, mais si je comprend bien c'Est une formule esacte, alors s'il y a une extension à la fin ca ne fonctionnera plus,

par mario » 19 mars 2006, 08:47

<?php
$str = '(514) 222-2222';

if ( preg_match('`^\s*\(?514\)?\s*[[:digit:]]{3}-?[[:digit:]]{4}\s*$`', $str) ){
  echo 'ok';
}

?>
Teste ça :wink:

par Lorenzo » 19 mars 2006, 08:37

tu as juste a modifier le masque pour ton N° ... tu aurais pu faire une petite recherche ... je ne connais pas tous les masques acceptables pour les N° Quebecois ...

disons que si les N° seront toujours formaté EXACTEMENT COMME CECI (514) 222-2222, tu peux faire un masque de REGEXP tres precise :

"#^\([0-9]{3}\) [0-9]{3}-[0-9]{4}$#"

par auclairp » 19 mars 2006, 08:23

utilise plutot une REGEXP :
$donnees['urgence_bell'] = '5140598';
if( preg_match("#^([0-9]+)$#", $donnees['urgence_bell']) ){
  echo "CEST UN N°";
}
ca ne fonctionne pas, voici ce que j'ai essayer
<?if ( preg_match("#^([0-9]+)$#", $donnees['urgence_bell']) ){?><td style="text-align: center; color: red;"><b><?echo $donnees['urgence_bell'] ;?> (PUBLIC)</b></td><?} else {}?>
urgence bell = (514) 222-2222

par Lorenzo » 19 mars 2006, 06:44

utilise plutot une REGEXP :
$donnees['urgence_bell'] = '5140598';
if( preg_match("#^([0-9]+)$#", $donnees['urgence_bell']) ){
  echo "CEST UN N°";
}

Problème de IF qui commance par un (

par auclairp » 19 mars 2006, 06:22

Bonjour j'ai mis une commande sur ma page qui affiche s'il y a des données dans la Bdd sinon affiche rien, sauf que le contenue du champ est un no de téléphonne don commance par un (514) "montréal/québec"

voici ma commande
<?if (($donnees['urgence_bell']) >= 1){?><td style="text-align: center; color: red;"><b><?echo $donnees['urgence_bell'] ;?> (PUBLIC)</b></td><?} else {}?>
bien sure vous allez comprendre que ca ne fonctionne pas, mais j'ai tester si la valeur commance par un chiffre et ca fonctionne très bien, alors je ne crois pas que ce soit la requête mai seulement la condition de mon IF

Merci de votre aide