Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

dernier caractère

  • Eurosyn
  • Eurosyn's Avatar Topic Author
  • Offline
  • Senior Member
  • Senior Member
More
5 years 8 months ago #171010 by Eurosyn
dernier caractère was created by Eurosyn
Bonjour,

existe-t-il une syntaxe pour interdire un caractère spécifique dans une zone de texte ? Dans mon cas, je souhaiterai éviter que les répondants ne mettent un espace en fin de chaine.

Plus précisément, s'agissant d'entrer un prénom, je souhaiterai que les répondants soient forcés à utiliser la syntaxe suivante :
- 1ère lettre en majuscule
- suite en lettre minuscule, espace et tiret autorisés
- éviter que les répondants n'insèrent pas mégarde un espace en fin de chaine

Merci pour votre aide !
Jonas
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
5 years 8 months ago #171013 by DenisChenu
Replied by DenisChenu on topic dernier caractère
Pour l'espace en fin de chaine : trim(self.NAOK) == self.NAOK .

On a pas déjà fait la regexp pour le reste ? Mais dans la regexp on accepte les espace, c'est ça ?

Si oui : tu peux mettre les 2 tests avec un and entre les 2.

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.
  • Eurosyn
  • Eurosyn's Avatar Topic Author
  • Offline
  • Senior Member
  • Senior Member
More
5 years 8 months ago #171018 by Eurosyn
Replied by Eurosyn on topic dernier caractère
Pour la 1ère lettre en majuscule j'ai ucwords(ID_prenom.NAOK) == ID_prenom.NAOK
En revanche, je n'ai rien qui permette de n'autoriser que les minuscules pour les autres caractères.
J'utilise la syntaxe suivante pour forcer des majuscules dans le NOM : regexMatch("/^[A-Z ]*$/", ID_NOM)
Mais le probème est qu'en utilisant regexMatch("/^[a-z ]*$/", ID_prenom), l'ucwords ne fonctionne plus
The topic has been locked.
  • Eurosyn
  • Eurosyn's Avatar Topic Author
  • Offline
  • Senior Member
  • Senior Member
More
5 years 8 months ago #171022 by Eurosyn
Replied by Eurosyn on topic dernier caractère
Je ne suis d'ailleurs pas sûr d'utiliser correctement ces fonctions.
En mettant l'ucwords dans l'équation de validation de question, je parviens à forcer les répondants à mettre une majuscule au début.
En revanche, si je mets le trim, cela ne fonctionne pas. Est-ce que j'utilise bien ces fonctions ?

Cordialement
Jonas
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
5 years 8 months ago - 5 years 8 months ago #171052 by DenisChenu
Replied by DenisChenu on topic dernier caractère
As tu essayé
Code:
regexMatch("/^[A-Z].[a-z\- ]*$/", ID_NOM.NAOK)  and trim(ID_NOM.NAOK) == ID_NOM.NAOK

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 8 months ago by DenisChenu.
The topic has been locked.
  • Eurosyn
  • Eurosyn's Avatar Topic Author
  • Offline
  • Senior Member
  • Senior Member
More
5 years 8 months ago #171093 by Eurosyn
Replied by Eurosyn on topic dernier caractère
Cela fonctionne presque. Mon seul problème est que cela bloque dans le cas de nom composé ou multiple.
Par exemple, je peux écrire 'Jean-pierre' mais pas 'Jean-Pierre' ou 'Alexandre junior' mais pas 'Alexandre Junior', ce que la fonction ucwords permettait en revanche (mais ne bloquait pas en minuscule).

Une idée pour combiner les deux ?
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
5 years 8 months ago - 5 years 8 months ago #171095 by DenisChenu
Replied by DenisChenu on topic dernier caractère
Donc, tu as besoin de ucwords …

et
Code:
ucwords(ID_NOM.NAOK) == ID_NOM.NAOK and trim(ID_NOM.NAOK) == ID_NOM.NAOK

?

Ou meme mieux :
Code:
(regexMatch("/^[A-Z].[a-z\- ]*$/", ID_NOM.NAOK)  or  ucwords(ID_NOM.NAOK) == ID_NOM.NAOK)  and trim(ID_NOM.NAOK) == ID_NOM.NAOK

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 8 months ago by DenisChenu.
The topic has been locked.
  • Eurosyn
  • Eurosyn's Avatar Topic Author
  • Offline
  • Senior Member
  • Senior Member
More
5 years 8 months ago #171103 by Eurosyn
Replied by Eurosyn on topic dernier caractère
Option 1 : Avec seulement la condition ucwords, je ne peux pas obliger mon utilisateur à ne mettre que des minuscules (sauf 1ère lettre).

Option 2 : Le problème est qu'avec la condition 'or', si l'utilisateur met une majuscule à la 1ère lettre, il respecte donc bien la regle ucwords donc le regexMatch devient caduque et il peut alors continuer à entrer des lettres majuscules
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
5 years 8 months ago #171112 by DenisChenu
Replied by DenisChenu on topic dernier caractère
Oups,

Plus facile :
Code:
(regexMatch("/^[A-Z].[a-z\- ]*$/", ID_NOM.NAOK)  or  ucwords(strtolower(ID_NOM.NAOK)) == ID_NOM.NAOK)  and trim(ID_NOM.NAOK) == ID_NOM.NAOK

ucwords(strtolower(ID_NOM.NAOK)) : passe en minuscule puis passe les première lettres en majuscule.

Mais bon, tous ça n'est pas réellement lié à LimeSurvey …

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: Eurosyn
The topic has been locked.
  • Eurosyn
  • Eurosyn's Avatar Topic Author
  • Offline
  • Senior Member
  • Senior Member
More
5 years 8 months ago #171116 by Eurosyn
Replied by Eurosyn on topic dernier caractère
C'est génial, merci !
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
5 years 8 months ago #171118 by DenisChenu
Replied by DenisChenu on topic dernier caractère
Bon en même temps, là tu empêche les Jean pierre Paul …

Sinon : même remarque que pour le téléphone : tu peux très bien laisser les personnes écrirent ce qu'elle veule et recalculer ensuite.

Ca serait un truc du genre : question Equation trim(ucwords(strtolower(ID_NOM.NAOK)))

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: Eurosyn
The topic has been locked.
  • Eurosyn
  • Eurosyn's Avatar Topic Author
  • Offline
  • Senior Member
  • Senior Member
More
5 years 8 months ago #171123 by Eurosyn
Replied by Eurosyn on topic dernier caractère
OK, merci pour l'info
The topic has been locked.
Moderators: Nickko

Lime-years ahead

Online-surveys for every purse and purpose