- Posts: 66
- Thank you received: 0
Welcome to the LimeSurvey Community Forum
Ask the community, share ideas, and connect with other LimeSurvey users!
dernier caractère
- Eurosyn
- Topic Author
- Offline
- Senior Member
Less
More
5 years 9 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
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
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13647
- Thank you received: 2491
5 years 9 months ago #171013
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 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.
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
- Topic Author
- Offline
- Senior Member
Less
More
- Posts: 66
- Thank you received: 0
5 years 9 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
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
- Topic Author
- Offline
- Senior Member
Less
More
- Posts: 66
- Thank you received: 0
5 years 9 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
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
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13647
- Thank you received: 2491
5 years 9 months ago - 5 years 9 months ago #171052
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 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 9 months ago by DenisChenu.
The topic has been locked.
- Eurosyn
- Topic Author
- Offline
- Senior Member
Less
More
- Posts: 66
- Thank you received: 0
5 years 9 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 ?
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
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13647
- Thank you received: 2491
5 years 9 months ago - 5 years 9 months ago #171095
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 dernier caractère
Donc, tu as besoin de ucwords …
et
?
Ou meme mieux :
et
?
Ou meme mieux :
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 9 months ago by DenisChenu.
The topic has been locked.
- Eurosyn
- Topic Author
- Offline
- Senior Member
Less
More
- Posts: 66
- Thank you received: 0
5 years 9 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
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
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13647
- Thank you received: 2491
5 years 9 months ago #171112
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 dernier caractère
Oups,
Plus facile :
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 …
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
- Topic Author
- Offline
- Senior Member
Less
More
- Posts: 66
- Thank you received: 0
5 years 9 months ago #171116
by Eurosyn
Replied by Eurosyn on topic dernier caractère
C'est génial, merci !
The topic has been locked.
- DenisChenu
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13647
- Thank you received: 2491
5 years 9 months ago #171118
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 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)))
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
- Topic Author
- Offline
- Senior Member
Less
More
- Posts: 66
- Thank you received: 0
5 years 9 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