Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:

THEMA: 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 Jahr 8 Monate her #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.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Re: Comment gérer la casse dans une condition avec une expression régulière ? 1 Jahr 8 Monate her #90173

  • DenisChenu
  • DenisChenus Avatar
  • OFFLINE
  • Moderator Lime
  • Beiträge: 6256
  • Dank erhalten: 799
  • Karma: 239
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
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Re: Comment gérer la casse dans une condition avec une expression régulière ? 1 Jahr 8 Monate her #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.
Letzte Änderung: 1 Jahr 8 Monate her von mathieu_sdis59.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Re: Comment gérer la casse dans une condition avec une expression régulière ? 1 Jahr 8 Monate her #90227

  • DenisChenu
  • DenisChenus Avatar
  • OFFLINE
  • Moderator Lime
  • Beiträge: 6256
  • Dank erhalten: 799
  • Karma: 239
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
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Re: Comment gérer la casse dans une condition avec une expression régulière ? 1 Jahr 8 Monate her #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
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Re: Comment gérer la casse dans une condition avec une expression régulière ? 1 Jahr 8 Monate her #90277

  • DenisChenu
  • DenisChenus Avatar
  • OFFLINE
  • Moderator Lime
  • Beiträge: 6256
  • Dank erhalten: 799
  • Karma: 239
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
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Re: Comment gérer la casse dans une condition avec une expression régulière ? 1 Jahr 7 Monate her #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 !
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Re: Comment gérer la casse dans une condition avec une expression régulière ? 1 Jahr 7 Monate her #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.
Letzte Änderung: 1 Jahr 7 Monate her von mathieu_sdis59.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Re: Comment gérer la casse dans une condition avec une expression régulière ? 1 Jahr 7 Monate her #90549

  • DenisChenu
  • DenisChenus Avatar
  • OFFLINE
  • Moderator Lime
  • Beiträge: 6256
  • Dank erhalten: 799
  • Karma: 239
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
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Moderatoren: Nickko
Ladezeit der Seite: 0.330 Sekunden
Donation Image