Bienvenue, Invité
Nom d'utilisateur : Mot de passe : Se souvenir de moi

SUJET : Comment gérer la casse dans une condition avec une expression régulière ?

Comment gérer la casse dans une condition avec une expression régulière ? il y a 1 an 10 mois #90061

Bonjour,
Voilà mon problème : je souhaite ajouter le champs "Arrondissement" quand le champs ville est équivalent à Paris, Lyon ou Marseille.
Dans les conditions, j'utilise donc une expression régulière qui devrait être :
/^(paris|marseille|lyon)/i

Mais le problèmes est que dans les conditions, comme précisé dans la doc, il ne faut pas mettre les '/'.
Donc sans mettre l'ensemble des combinaisons possibles majuscules/minuscules, y'a-t-il une solution simple à mon problème ?

Merci d'avance.
L'administrateur a désactivé l'accès en écriture pour le public.

Re: Comment gérer la casse dans une condition avec une expression régulière ? il y a 1 an 10 mois #90173

  • DenisChenu
  • Portrait de DenisChenu
  • Hors ligne
  • Moderator Lime
  • Messages : 6429
  • Remerciements reçus 839
  • Karma: 249
Salut,

Tu utilise les condition ou le gestionnaire d'expressions (ie : l'interface GUI ou "à la main").

Avec le gestionnaire d'expressions, tu peux utiliser :
strcasecmp(QCODE,'lyon') or strcasecmp(QCODE,'marseille') or strcasecmp(QCODE,'paris')
Dans l'"Équation du filtre conditionnel"

Denis
L'administrateur a désactivé l'accès en écriture pour le public.

Re: Comment gérer la casse dans une condition avec une expression régulière ? il y a 1 an 10 mois #90206

Salut Denis,

Merci pour ta réponse.
En effet, j'ai utilisé une regexp faite "à la main".

J'ai un peu du mal avec le gestionnaire d'expressions, il me génère des codes bizarres qui apparaissent en rouge entouré de rouge du style ;
((58116X52X693SQ002.NAOK != "toto"))

Du coup je décale un peu la question :
- faut-il lui parler directement en PHP dans la case "Équation du filtre conditionnel" ou bien le générateur est-il sensé le faire à notre place ?
- comment connaît-on le QCODE d'une sous-question ?

Merci bien de ton aide.
Dernière édition: il y a 1 an 10 mois par mathieu_sdis59.
L'administrateur a désactivé l'accès en écriture pour le public.

Re: Comment gérer la casse dans une condition avec une expression régulière ? il y a 1 an 10 mois #90227

  • DenisChenu
  • Portrait de DenisChenu
  • Hors ligne
  • Moderator Lime
  • Messages : 6429
  • Remerciements reçus 839
  • Karma: 249
Salut,

le QCODE d'une sous question c'est : CODEDELAQUESTION_CODEDELASOUSQUESTION.

Sinon, si il y a du rouge, cela peux vouloir dire qu'il y a un problème, par exemple sur le code.
Mais passe avant par le fichier de test, quelquefois ce n'est pas mis à jour dans la session.

Denis
L'administrateur a désactivé l'accès en écriture pour le public.

Re: Comment gérer la casse dans une condition avec une expression régulière ? il y a 1 an 10 mois #90233

Voilà ce que ça donne :

Filtre conditionnel : strcasecmp(LieuNaissance_Ville, 'lyon') or strcasecmp(LieuNaissance_Ville, 'marseille') or strcasecmp(LieuNaissance_Ville, 'paris')

et le test ne fonctionne pas :
Notice: Undefined index: name in /var/www/limesurvey/replacements.php on line 720

Merci
L'administrateur a désactivé l'accès en écriture pour le public.

Re: Comment gérer la casse dans une condition avec une expression régulière ? il y a 1 an 10 mois #90277

  • DenisChenu
  • Portrait de DenisChenu
  • Hors ligne
  • Moderator Lime
  • Messages : 6429
  • Remerciements reçus 839
  • Karma: 249
Salut,

Ca arrive quelquefois semble t'il même si le code est OK.

Dans ce cas: utiliser le GUI des conditions, indiquer "ta question ou sous question" doit être égal à paris, enregistrer.

Vérifier que c'est OK: copier la partie indidué dnas equation, retourner dans le GUI, supprimer les conditions.
Coller la condition précédente et la remodifier en conséquences.
(strcasecmp(LieuNaissance_Ville, 'lyon') or strcasecmp(LieuNaissance_Ville, 'marseille') or strcasecmp(LieuNaissance_Ville, 'paris'))
(ajoute les ( et ) au début et à la fin, il semble que ca passe mieux.

Va vraiment falloir que je passe du temps à revoir tous ca ....

Denis
L'administrateur a désactivé l'accès en écriture pour le public.

Re: Comment gérer la casse dans une condition avec une expression régulière ? il y a 1 an 9 mois #90467

Bonjour Denis,
Je n'ai pas réussi malgré différents tests suite à ta réponse.
Je vais tourner mon questionnaire autrement pour solutionner ce truc.
Merci pour ton aide et joyeux Noël !
L'administrateur a désactivé l'accès en écriture pour le public.

Re: Comment gérer la casse dans une condition avec une expression régulière ? il y a 1 an 9 mois #90500

Un peu de repos, ça fait du bien ! Après avoir installé la version 2, j'ai recreusé le sujet et voilà la solution simple :
((strcasecmp(ville_naissance, 'lyon') == 0) or (strcasecmp(ville_naissance, 'paris') == 0) or (strcasecmp(ville_naissance, 'marseille') == 0))
Bref, il manquait juste les "==0" ...
Bonne fin d'année.
Dernière édition: il y a 1 an 9 mois par mathieu_sdis59.
L'administrateur a désactivé l'accès en écriture pour le public.

Re: Comment gérer la casse dans une condition avec une expression régulière ? il y a 1 an 9 mois #90549

  • DenisChenu
  • Portrait de DenisChenu
  • Hors ligne
  • Moderator Lime
  • Messages : 6429
  • Remerciements reçus 839
  • Karma: 249
Salut,

L'affichage se fait bien si c'est écrit lyon ou paris ou marseille ?

Si oui, essaye plutot:
!== false

Pour que celui qui écrit " à paris" vois aussi la question.

Denis
L'administrateur a désactivé l'accès en écriture pour le public.
Modérateurs: Nickko
Temps de génération de la page : 0.286 secondes
Donation Image