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 le Mer 17 Oct 2012 - 10:55

Outrepasser le bug du caractère $


Quel est le problème ?

À plusieurs endroits, 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.

Pourquoi avoir cette belle fonctionnalité ?

Il semblerait que ce soit contre des spammeurs qui utiliseraient le caractère $ dans leur spam. Vu que $ est tout de même affiché, je miserais plus sur un développeur aigri qui veut enquiquiner le reste du monde.

À quels endroits ça pose problème ?

Il n'y a pas de moyen de le mettre:

  • Dans le popup de connexion ( PA > Général > Forum | Configuration )
  • Dans la description de forum ( PA > Général > Catégories et forums )
  • Dans les annonces ( PA > Général > Annonces )
  • Dans les contenus des widgets ( PA > Modules > Portail & Widgets )


Que faire si on doit le mettre ?

  • Dans le cas du $ de 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 la forme hexadécimale :

    Code:
    'caractère \x24 o/'
    ou sous la forme unicode :

    Code:
    'caractère \u0024 o/'
    ou bien sous la forme octale :

    Code:
    'caractère \044 o/'
    Les 3 donneront la chaîne de texte :

    Code:
    caractère $ o/

  • 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
Aidactif
Aidactif

Messages : 23429
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