Supprimer les caractères spéciaux et les accents dans une expression

More
1 year 1 month ago #209195 by ludogre
Bonjour,

Je souhaiterais supprimer tous les caractères spéciaux d'une réponse précédente pour l'afficher plus loin dans le questionnaire.
J'ai fait une petit test pour virer les accents sur les "E", les espaces et les "'". Ça parait laborieux.
{str_replace(
	"É","E",
	str_replace("È","E",
		str_replace(" ","",
			str_replace("'","",
				str_replace("Ê","E",
					str_replace("Ë","E",
						strtoupper(html_entity_decode(nom))
					)
				)
			)
		)
	)
)}

Y-a t-il un moyen de faire ça de façon élégante?
The topic has been locked.
More
1 year 1 month ago #209201 by DenisChenu
Tu pourrais demander aux personnes de rentrer les données sans accents ou ce n'est pas possible ?

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.
More
1 year 1 month ago #209217 by Nickko
Bonjour,

Je viens avec ma casquette d'ergonome, d'expérience, si les gens on l'habitude de taper avec accent, ça sera très difficile de leur faire taper sans accent. De même s'ils utilisent l'auto-complétions du navigateur (je ne sais pas de quelle donnée on parle).

En cherchant 3 secondes, j'ai trouve ça, peut-être une source d'inspiration : stackoverflow.com/questions/990904/remov...string-in-javascript

Nickko
Head of ergonomics, UX & UI.
The topic has been locked.
More
1 year 1 month ago #209226 by ludogre
Effectivement, ça sera difficile de ne pas avoir de caractères spéciaux et d'accents dans le champs de saisie, car j'ai besoin que la personne saisisse son nom (le vrai avec accent et tout) et de lui renvoyer un code épuré, basé, entre autre, avec son nom.

Nickko: je n'ai pas cherché de solution de formatage avec javascript car je n'ai encore jamais cherché à personnaliser limesurvey de ce côté là.

Je suis néanmoins tombé sur ces pages qui semblent effectivement prometteuses:
- survey-consulting.com/how-to-use-javascr...-template-or-survey/ ;
- manual.limesurvey.org/Workarounds:_Manip...ime_using_Javascript .

Merci pour le lien en tous cas. Car il est vrai que je ne suis pas encore trop familié du javascript.

Je reviens par ici après expérimentations.
The topic has been locked.
More
1 year 1 month ago #209229 by DenisChenu
Sinon, en théroie : tu doit pouvoir utiliser


str_replace(["É","È","Ê"],["E","E","E"],strtoupper(html_entity_decode(nom)))

Je dis bien en théorie : j'ai pas testé , mais le PHP l'accepte

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.
More
1 year 1 month ago #209250 by ludogre
C'est la solution que j'aurai rêver mettre en place. Seulement pour les "[" et "]", Limesurvey indique: "Syntaxe non pris en charge".

:-|
The topic has been locked.
More
1 year 1 month ago #209257 by DenisChenu
Ah … m…

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.
More
1 year 1 month ago #209311 by fradeff
intéressante question

j'ai eu le même problème, mais c'était plus en aval (url de fin -> traité avec php, là on plein d'exemples de regexp pour faire le boulot)

ici il faut du JS; as-tu essayé le script proposé par Nickko?
stackoverflow.com/questions/990904/remov...string-in-javascript
c'est du pur JS, ça devrait faire l'affaire, non?
The following user(s) said Thank You: DenisChenu
The topic has been locked.
More
1 year 1 month ago #209317 by DenisChenu
Vivement la 4 en stable …
manual.limesurvey.org/ExpressionManagerStart

En PHP et en JS : ca devrait aller beaucoup plus vite …

Sur l'urtl de fin : j'aurais carrément redirigé vers un e page PHP perso …

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.
More
1 year 1 month ago #209396 by ludogre
Re!

Bon, comme indiqué, je n'avais jamais essayé d'ajouter du javascript à LimeSurvey.

D'après cette page survey-consulting.com/how-to-use-javascr...-template-or-survey/ , il y a deux méthodes. La première me plait bien pour les raisons qui y sont indiqués, et notamment en ce qui me concerne, l'aspect sécurité et la possibilité de réutilisation.

Donc, j'ai réussi à ajouter du javascript à mon thème personnalisé. \o/

J'ai donc ajouté ceci stackoverflow.com/questions/990904/remov...string-in-javascript .

Par contre, je ne sais pas comment le réutiliser.

Je pensais (naïvement) qu'ajouter
{accentsTidy(nom)}
dans la desription de ma question suffirait. Mais ce n'est pas le cas. :-(

Est-ce que vous avez des exemples d'implémentation de ce style de fonctionnalité?

Merci.
The topic has been locked.
More
1 year 1 month ago - 1 year 1 month ago #209413 by DenisChenu
Tu garde cette fonction dans custom.js (ou ou tu l's mis).

Tu ajoute
$(function() {
    $(".question-container.accentsTidy .text-item > textarea").on("change", function() {
        $(this).val(accentsTidy($(this).val()));
    });
    $(".question-container.accentsTidy .text-item > input:text").on("change", function() {
        $(this).val(accentsTidy($(this).val()));
    });
});
Tu ajoute la classe CSS accentsTidy à la/aux question(s)

Voir :
api.jquery.com/ready/
api.jquery.com/on/
api.jquery.com/val/

Ca met à jour quand l'utilisateur sort de la réponse.

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: 1 year 1 month ago by DenisChenu.
The topic has been locked.
More
1 year 1 month ago - 1 year 1 month ago #209736 by ludogre
Après quelques errements infructueux, je repasse par ici.Je vous joint mon fichier de groupe de questions ainsi que mon fichier custom.js.Évidemment, n'étant pas familié de javascript et malgré la doc, je n'arrive pas encore à faire fonctionner ça.

File Attachment:

File Name: custom.js.zip
File Size:1 KB

File Attachment:

File Name: limesurvey..._869.lsg
File Size:3 KB
Attachments:
Last edit: 1 year 1 month ago by ludogre. Reason: Manque custom.js
The topic has been locked.
More
1 year 1 month ago #209744 by DenisChenu
Jamais un lsg : j'ai pas envie de créer un quetsionnaire .
Je n'importe que des lss …

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.
More
1 year 1 month ago - 1 year 1 month ago #209747 by DenisChenu
Sinon,

tente avec
accentsTidy = function(s){
    var r=s.toLowerCase();
    r = r.replace(new RegExp(/\s/g),"");
    r = r.replace(new RegExp(/[àáâãäå]/g),"a");
    r = r.replace(new RegExp(/æ/g),"ae");
    r = r.replace(new RegExp(/ç/g),"c");
    r = r.replace(new RegExp(/[èéêë]/g),"e");
    r = r.replace(new RegExp(/[ìíîï]/g),"i");
    r = r.replace(new RegExp(/ñ/g),"n");                
    r = r.replace(new RegExp(/[òóôõö]/g),"o");
    r = r.replace(new RegExp(/œ/g),"oe");
    r = r.replace(new RegExp(/[ùúûü]/g),"u");
    r = r.replace(new RegExp(/[ýÿ]/g),"y");
    r = r.replace(new RegExp(/\W/g),"");
    return r;
};
 
$(function() {
    $(".question-container.accentsTidy .text-item > textarea").on("change", function() {
        $(this).val(accentsTidy($(this).val()));
    });
    $(".question-container.accentsTidy .text-item > input:text").on("change", function() {
        $(this).val(accentsTidy($(this).val()));
    });
});
DIRECTEMENT, pas inclus dans la fonction.

Ca fonctionne quand l'utilisateur sort de la réponse. si tu veux à la saisie : keyup au lieu de change.

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: 1 year 1 month ago by DenisChenu.
The topic has been locked.
More
1 year 1 month ago #209749 by ludogre
Merci pour le retour.

Même avec le code "DIRECTEMENT", ça ne passe pas.

J'attache le questionnaire en entier pour test.

File Attachment:

File Name: limesurvey...1587.lss
File Size:18 KB
Attachments:
The topic has been locked.
Moderators: Nickko

Start now!

Just create your account and start using Limesurvey today.

Register now