Utilisation des Regex

Plus d'informations
il y a 2 semaines 12 heures #178846 par Nenesse
Nenesse a créé le sujet : Utilisation des Regex
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
Pièces jointes :

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 semaine 6 jours #178863 par DenisChenu
DenisChenu a répondu au sujet : 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.

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 .
Les utilisateur(s) suivant ont remercié: Nenesse

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 semaine 6 jours #178865 par Nenesse
Nenesse a répondu au sujet : 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:
Pièces jointes :

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 semaine 6 jours #178878 par DenisChenu
DenisChenu a répondu au sujet : Utilisation des Regex

Nenesse écrit:
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 .

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 semaine 6 jours #178881 par Nenesse
Nenesse a répondu au sujet : 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
Pièces jointes :

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 semaine 6 jours - il y a 1 semaine 6 jours #178883 par DenisChenu
DenisChenu a répondu au sujet : Utilisation des Regex
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 .
Dernière édition: il y a 1 semaine 6 jours par DenisChenu.
Les utilisateur(s) suivant ont remercié: Nenesse

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 semaine 6 jours #178884 par Nenesse
Nenesse a répondu au sujet : 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?
!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"...
Pièces jointes :

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 semaine 6 jours - il y a 1 semaine 6 jours #178885 par Nenesse
Nenesse a répondu au sujet : 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 ;)
Dernière édition: il y a 1 semaine 6 jours par Nenesse. Raison: ajout info supplémentaire

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 semaine 5 jours - il y a 1 semaine 5 jours #178897 par Nenesse
Nenesse a répondu au sujet : 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?
  • 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
Dernière édition: il y a 1 semaine 5 jours par Nenesse. Raison: Ajout d'information

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 semaine 3 jours #178908 par DenisChenu
DenisChenu a répondu au sujet : 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.

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 .

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 semaine 3 jours #178923 par Nenesse
Nenesse a répondu au sujet : Utilisation des Regex
C'est fait pour la documentation ;)

Encore merci pour ton aide.

Connexion ou Créer un compte pour participer à la conversation.

Modérateurs: Nickko

Commencez dès maintenant !

Créez simplement un compte et commencez à utiliser LimeSurvey dès aujourd'hui.

Inscrivez-vous maintenant

Inscrivez-vous à notre Newsletter!