Outrepasser le bug du caractère $

Voir le sujet précédent Voir le sujet suivant Aller en bas

Astuce Outrepasser le bug du caractère $

Message par Ea Mer 17 Oct 2012 - 10:55

Outrepasser le bug du caractère $

À plusieurs endroits du Panneau d'administration, le caractère $ est remplacé par son équivalent html $ . Cela ne pose pas de problème si on veut juste afficher le caractère $ dans du texte, mais si par exemple on a un script Javascript utilisant ce caractère, il faut probablement que ce soit ce caractère et pas l'équivalent HTML.

Les endroits problématiques...


Plusieurs emplacements dans le Panneau d'administration ne semblent pas accepter convenablement le caractère $ :

  • Dans le pop-up de connexion :

    Panneau d'administration  Général  Forum - Configuration

  • Dans la description de forums ou sous-forums :

    Panneau d'administration  Général  Forum - Catégories et forums

  • Dans les annonces :

    Panneau d'administration  Général  Messages & Emails - Annonces

  • Dans le message d'accueil :

    Panneau d'administration  Affichage  Page d'accueil - Généralités

  • Dans le contenu des widgets (portail et forum) :

    Panneau d'administration  Modules  Portail & Widgets


Cette liste n'est pas exhaustive.

La démarche à suivre pour contourner le problème


Dans le cas du $ de la librairie JQuery


$ est en fait interchangeable avec jQuery, donc on peut juste remplacer les $ par jQuery. Si vous ne voulez pas mettre jQuery en entier plein de fois, vous pouvez mettre juste une fois :

Code:
var jq= jQuery;

par exemple (ou mettre à la place de jq ce que vous souhaitez) , ensuite vous pourrez mettre jq plutôt que jQuery ou $.

Dans le cas du $ dans une chaîne de caractère Javascript


Il se peut que ça pose problème, par exemple vous voudriez tester qu'un texte soit bien "50$", le $ se transformant vous ne pourrez pas tester cela. Il y a d'autres manières de mettre le signe $ dans une chaîne de caractère Javascript.

  • Soit sous forme hexadécimale :

    Code:
    \x24

  • Soit sous forme unicode :

    Code:
    \u0024

  • Soit sous forme octale :

    Code:
    \044


Dans le cas du $ dans une expression régulière Javascript


Cela peut-être nécessaire, soit pour le même cas qu'au dessus, en voulant chercher le caractère $. Mais également pour une expression régulière, le caractère $ signifie "fin de chaîne". Par exemple l'expression régulière /a$/ appliqué à un texte finissant par a donnera un résultat positif (et dans les autres cas un résultat négatif).

Il faudrait donc, pour cela :

  • Soit construire l'expression régulière avec une chaîne de caractère. Cela est possible comme ceci :

    Code:
    var expr_reg= new RegExp('a\x24');

    Donc notre expr_reg vaut ainsi /a$/. En pouvant utiliser une chaîne, on a la possibilité comme expliqué plus haut de remplacer $ par une séquence d'échappement (ce qui nous permet de "l'utiliser sans l'écrire").

  • Soit mettre l'expression régulière dans un endroit où l'utilisation du $ est réalisable (par exemple dans une feuille de script), puis utiliser le nom de la variable. Par exemple dans la feuille de script on pourrait avoir :

    Code:
    var re_fini_par_a= /a$/ ;

    puis on peut l'utiliser où on veut, en utilisant juste la variable re_fini_par_a.


Ea

Ea
Aidactif
Aidactif

Messages : 23583
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut


Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum