Vérifiez vos informations

Il semblerait que les informations techniques de votre profil n'aient pas été actualisées depuis un certain temps... Pour que l'aide apportée vous soit efficace, il est important que ces informations soient à jour : prenez quelques secondes pour confirmer ou compléter les informations suivantes.


Lien de votre forum
Version de ce forum
Vous êtes le fondateur de ce forum
Vous avez modifié le CSS de ce forum
Vous avez modifié les templates de ce forum
Votre navigateur

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


avatar

Ea
Aidactif
Aidactif

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