- Posts: 16
- Thank you received: 1
Welcome to the LimeSurvey Community Forum
Ask the community, share ideas, and connect with other LimeSurvey users!
Utilisation des Regex
- Nenesse
- Topic Author
- Offline
- New Member
Less
More
5 years 3 months ago #178846
by Nenesse
Utilisation des Regex was created by Nenesse
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
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
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
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
Attachments:
The topic has been locked.
- DenisChenu
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13643
- Thank you received: 2491
5 years 3 months ago #178863
by DenisChenu
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
Replied by DenisChenu on topic Utilisation des Regex
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.
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 , plugin development .
I don't answer to private message.
The following user(s) said Thank You: Nenesse
The topic has been locked.
- Nenesse
- Topic Author
- Offline
- New Member
Less
More
- Posts: 16
- Thank you received: 1
5 years 3 months ago #178865
by Nenesse
Replied by Nenesse on topic Utilisation des Regex
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:
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:
Attachments:
The topic has been locked.
- DenisChenu
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13643
- Thank you received: 2491
5 years 3 months ago #178878
by DenisChenu
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 , plugin development .
I don't answer to private message.
Replied by DenisChenu on topic Utilisation des Regex
Non, non, c'est bien cela .Nenesse wrote:
J'ai bien compris ou je suis à côté de la plaque? :blush:
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 , plugin development .
I don't answer to private message.
The topic has been locked.
- Nenesse
- Topic Author
- Offline
- New Member
Less
More
- Posts: 16
- Thank you received: 1
5 years 3 months ago #178881
by Nenesse
Replied by Nenesse on topic Utilisation des Regex
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
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
Attachments:
The topic has been locked.
- DenisChenu
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13643
- Thank you received: 2491
5 years 3 months ago - 5 years 3 months ago #178883
by DenisChenu
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
Replied by DenisChenu on topic Utilisation des Regex
Alors …
Supprimer les commentaires puisque les expressions n'ont pas de commentaires
Supprimer les commentaires puisque les expressions n'ont pas de commentaires
Code:
!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 , plugin development .
I don't answer to private message.
Last edit: 5 years 3 months ago by DenisChenu.
The following user(s) said Thank You: Nenesse
The topic has been locked.
- Nenesse
- Topic Author
- Offline
- New Member
Less
More
- Posts: 16
- Thank you received: 1
5 years 3 months ago #178884
by Nenesse
Replied by Nenesse on topic Utilisation des Regex
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?
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"...
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?
Code:
!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"...
Attachments:
The topic has been locked.
- Nenesse
- Topic Author
- Offline
- New Member
Less
More
- Posts: 16
- Thank you received: 1
5 years 3 months ago - 5 years 3 months ago #178885
by Nenesse
Replied by Nenesse on topic Utilisation des Regex
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
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: 5 years 3 months ago by Nenesse. Reason: ajout info supplémentaire
The topic has been locked.
- Nenesse
- Topic Author
- Offline
- New Member
Less
More
- Posts: 16
- Thank you received: 1
5 years 3 months ago - 5 years 3 months ago #178897
by Nenesse
Replied by Nenesse on topic Utilisation des Regex
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?
Les expressions ont été vérifiées sur ce site .
[hr]
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:
Merci
- 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 .
[hr]
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: 5 years 3 months ago by Nenesse. Reason: Ajout d'information
The topic has been locked.
- DenisChenu
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13643
- Thank you received: 2491
5 years 3 months ago #178908
by DenisChenu
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
Replied by DenisChenu on topic Utilisation des Regex
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.
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 , plugin development .
I don't answer to private message.
The topic has been locked.
- Nenesse
- Topic Author
- Offline
- New Member
Less
More
- Posts: 16
- Thank you received: 1
5 years 3 months ago #178923
by Nenesse
Replied by Nenesse on topic Utilisation des Regex
C'est fait pour la documentation
Encore merci pour ton aide.
Encore merci pour ton aide.
The topic has been locked.
Moderators: Nickko