Utilisation des Regex

Mehr
2 Monate 2 Wochen her #178846 von Nenesse
COM_KUNENA_MESSAGE_CREATED_NEW
Hello,

je tatonne sur l'utilisation des expressions regex pour contrôler des entrées saisies d'une question à multiples zones de texte court.

Je ne sais pas où mettre l'expression :unsure:

Est-ce que je peux la mettre dans les filtres conditionnels comme sur ma capture?



j'ai l'impression que ça ne fonctionne pas quand je prévisualise le questionnaire, je peux passer à la page suivante, mais pas dans le cas d'une case vide par exemple.

Ou alors je dois la mettre dans Fixer les conditions?

J'ai bien lu cette doc , mais c'est pas plus clair dans ma tête :silly:

Merci de votre aide
Anhang:

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

LimeSurvey Partners
Mehr
2 Monate 2 Wochen her #178863 von DenisChenu
COM_KUNENA_MESSAGE_REPLIED_NEW
C'est bien dans les paramètres avancés de la question , dans la zone «Équation de validation des textes» ou «Équation de validation de la question»

regexMatch("/^taregex?$/",ContactClient_SQ003) and regexMatch("/^(\w[-._+\w]*\w@\w[-._\w]*\w\.\w{2,3})?$/",ContactClient_SQ005)

La doc devrait être encore valide en dehors de la partie {QUESTION_HELP} … mais cela apparaitra.

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand (or search sondages pro).
An error happen ? Before make a new topic : remind the Debug mode .
Folgende Benutzer bedankten sich: Nenesse

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
2 Monate 2 Wochen her #178865 von Nenesse
COM_KUNENA_MESSAGE_REPLIED_NEW
Merci pour ton retour Denis.

On est d'accord que tu donnes juste un exemple, pas forcément lié à mon contexte ou ma capture plus haut?

Si tu m'indiques ce que je dois mettre précisément, alors je ne comprends pas la partie /^taregex?$/ dans regexMatch("/^taregex?$/",ContactClient_SQ003).

Si je me base sur ce lien , alors ce que je devrais mettre sur cette capture en bas à droite


dans Equation de validation de la question, devrait plus ressembler à ça:

regexMatch("/^((\+|00)33\s?|0)[1-5](\s?\d{2}){4}$/",ContactClient_SQ003) and regexMatch("/^((\+|00)33\s?|0)[679](\s?\d{2}){4}$/",ContactClient_SQ004) and regexMatch("/^.+?@.+?\..+$/",ContactClient_SQ005)

pour correspondre à mon cas de figure:


J'ai bien compris ou je suis à côté de la plaque? :blush:
Anhang:

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
2 Monate 2 Wochen her #178878 von DenisChenu
COM_KUNENA_MESSAGE_REPLIED_NEW

Nenesse schrieb:
J'ai bien compris ou je suis à côté de la plaque? :blush:

Non, non, c'est bien cela .


J'ai pas vérifié la regexp et pas recopié celle qui apparaissait en image.

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand (or search sondages pro).
An error happen ? Before make a new topic : remind the Debug mode .

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
2 Monate 2 Wochen her #178881 von Nenesse
COM_KUNENA_MESSAGE_REPLIED_NEW
Bon, c'est déjà ça! merci

Par contre, j'ai vu qu'il y avait, en plus de l'Équation de validation de question, Subquestion validation equation.

Du coup, j'ai mis ça dans cette deuxième option, Subquestion validation equation: jusque là, tout va bien, ça fonctionne.


Par contre, je suis en train de m'arracher les cheveux à essayer, en plus des regex, de faire en sorte sur sur les 5 sous-questions, seules 3 sont obligatoires, ce qui donne un truc comme ça:


Avec, pour rappel, les sous-questions suivantes:


Pour faire simple, le nom, le numéro de fixe et l'email sont obligatoires, mais pas le prénom ni le numéro de mobile, tout en conservant la vérification des entrées avec les regex.

J'ai spécifié que le minimum de réponses à apporter est 3.

En gros, si j'ai bien compris que !empty(ContactClient_SQ001) signifie que la case ne peut pas être vide, je n'ai pas compris comment lui dire que le prénom et le numéro de mobile sont des sous-questions non-obligatoire :S
Anhang:

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
2 Monate 2 Wochen her - 2 Monate 2 Wochen her #178883 von DenisChenu
COM_KUNENA_MESSAGE_REPLIED_NEW
Alors …
Supprimer les commentaires puisque les expressions n'ont pas de commentaires
!is_empty(ContactClient_SQ001) /* Nom obligatoire */
and
(!is_empty(ContactClient_SQ003) and regexMatch("/^((\+|00)33\s?|0)[1-5](\s?\d{2}){4}$/",ContactClient_SQ003) ) /* Téléphone obligatoire */
and
(is_empty(ContactClient_SQ004) or regexMatch("/^((\+|00)33\s?|0)[679](\s?\d{2}){4}$/",ContactClient_SQ004) ) /* mobile non obligatoire */
and 
(!is_empty(ContactClient_SQ005) and regexMatch("/^.+?@.+?\..+$/",ContactClient_SQ005)) /* email obligatoire */

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand (or search sondages pro).
An error happen ? Before make a new topic : remind the Debug mode .
Last edit: 2 Monate 2 Wochen her by DenisChenu.
Folgende Benutzer bedankten sich: Nenesse

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
2 Monate 2 Wochen her #178884 von Nenesse
COM_KUNENA_MESSAGE_REPLIED_NEW
Je dois vraiment être nul...

Quoi que je fasse, j'ai l'impression que comme la question est obligatoire, TOUTES les sous-questions doivent être remplies même si je précise l'Équation de validation de question ci-dessous, c'est possible ça?
!is_empty(ContactClient_SQ001)
and
is_empty(ContactClient_SQ002)
and
(!is_empty(ContactClient_SQ003) and regexMatch("/^((\+|00)33\s?|0)[1-5](\s?\d{2}){4}$/",ContactClient_SQ003))
and
(is_empty(ContactClient_SQ004) or regexMatch("/^((\+|00)33\s?|0)[679](\s?\d{2}){4}$/",ContactClient_SQ004))
and 
(!is_empty(ContactClient_SQ005) and regexMatch("/^.+?@.+?\..+$/",ContactClient_SQ005))

D'ailleurs, même si je remplis TOUTES les sous-questions, je ne peux pas passer à la suite car "vous n'avez pas répondu correctement à une ou plusieurs questions"...
Anhang:

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
2 Monate 2 Wochen her - 2 Monate 2 Wochen her #178885 von Nenesse
COM_KUNENA_MESSAGE_REPLIED_NEW
Bon, au final c'est bien ça,

avec mes sous-questions obligatoires et optionnelles, il NE faut PAS que la question soit obligatoire pour que ça fonctionne...

Merci pour ton aide Denis

EDIT: pour info, j'ai mis les conditions dans Subquestion validation equation, et ça marche bien comme je le souhaite ;)
Last edit: 2 Monate 2 Wochen her by Nenesse. Begründung: ajout info supplémentaire

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
2 Monate 2 Wochen her - 2 Monate 2 Wochen her #178897 von Nenesse
COM_KUNENA_MESSAGE_REPLIED_NEW
Vu que l'on était sur les RegEx, et que j'ai cherché un peu même si finalement, quand on comprend comment ça marche, ce n'est pas compliqué, est-ce qu'il serait possible de rajouter dans la documentation les codes postaux français à 5 chiffres?
  • Simple (5 chiffres sans vérification de pertinence):
    /^\d{5}$/
    ou
    /^[0-9]{5}$/
  • Avancé (5 chiffres + vérification de pertinence + DOM-TOM):
    /(^[0-8][0-9][0-9]{3}$)|(^9[0-5][0-9]{3}$)|(^97[1-6][0-9]{2}$)|(^98[46-8][0-9]{2}$)/
    ou
    /(^[0-8]\d\d{3}$)|(^9[0-5]\d{3}$)|(^97[1-6]\d{2}$)|(^98[46-8]\d{2}$)/

Les expressions ont été vérifiées sur ce site .




De la même manière, pour mettre à jour la documentation RegEx, il faudrait améliorer la partie téléphone.
En France, les préfix pour la téléphonie fixe sont 01 02 03 04 05 et 09 (VOIP box internet). Les mobiles eux, n'ont que le 06 et 07 en préfix. Ce qui donnerait:
  • Pour les fixes:
    /^((\+|00)33\s?|0)[1-59](\s?\d{2}){4}$/
  • Pour les mobiles:
    /^((\+|00)33\s?|0)[67](\s?\d{2}){4}$/

Merci
Last edit: 2 Monate 2 Wochen her by Nenesse. Begründung: Ajout d'information

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
2 Monate 2 Wochen her #178908 von DenisChenu
COM_KUNENA_MESSAGE_REPLIED_NEW
Salut,

1. Oui: question onbligatoire revient à ajouter !is_empty sur toutes les lignes. Ce n'est pas ce que tu souhaite
2. La manuel est un wiki éditable avec to compte : même utilisateur/mot de passe.

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand (or search sondages pro).
An error happen ? Before make a new topic : remind the Debug mode .

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
2 Monate 2 Wochen her #178923 von Nenesse
COM_KUNENA_MESSAGE_REPLIED_NEW
C'est fait pour la documentation ;)

Encore merci pour ton aide.

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Moderatoren: Nickko

Jetzt loslegen!

Melden Sie sich jetzt an, und erstellen Sie in wenigen Minuten Ihre erste Umfrage.

Account einrichten

Abonnieren Sie unseren Newsletter

Abonnieren Sie unseren Newsletter für alle Neuigkeiten rund um LimeSurvey
captcha