Welcome, Guest
Username: Password: Remember me

TOPIC: 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 ? 1 year 7 months ago #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.
The administrator has disabled public write access.

Re: Comment gérer la casse dans une condition avec une expression régulière ? 1 year 7 months ago #90173

  • DenisChenu
  • DenisChenu's Avatar
  • NOW ONLINE
  • Moderator Lime
  • Posts: 6239
  • Thank you received: 794
  • Karma: 238
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
The administrator has disabled public write access.

Re: Comment gérer la casse dans une condition avec une expression régulière ? 1 year 7 months ago #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.
Last Edit: 1 year 7 months ago by mathieu_sdis59.
The administrator has disabled public write access.

Re: Comment gérer la casse dans une condition avec une expression régulière ? 1 year 7 months ago #90227

  • DenisChenu
  • DenisChenu's Avatar
  • NOW ONLINE
  • Moderator Lime
  • Posts: 6239
  • Thank you received: 794
  • Karma: 238
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
The administrator has disabled public write access.

Re: Comment gérer la casse dans une condition avec une expression régulière ? 1 year 7 months ago #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
The administrator has disabled public write access.

Re: Comment gérer la casse dans une condition avec une expression régulière ? 1 year 7 months ago #90277

  • DenisChenu
  • DenisChenu's Avatar
  • NOW ONLINE
  • Moderator Lime
  • Posts: 6239
  • Thank you received: 794
  • Karma: 238
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
The administrator has disabled public write access.

Re: Comment gérer la casse dans une condition avec une expression régulière ? 1 year 7 months ago #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 !
The administrator has disabled public write access.

Re: Comment gérer la casse dans une condition avec une expression régulière ? 1 year 7 months ago #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.
Last Edit: 1 year 7 months ago by mathieu_sdis59.
The administrator has disabled public write access.

Re: Comment gérer la casse dans une condition avec une expression régulière ? 1 year 7 months ago #90549

  • DenisChenu
  • DenisChenu's Avatar
  • NOW ONLINE
  • Moderator Lime
  • Posts: 6239
  • Thank you received: 794
  • Karma: 238
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
The administrator has disabled public write access.
Moderators: Nickko
Time to create page: 0.289 seconds
Donation Image