Apostrophe en JavaScript

Résolu
hasan Messages postés 30 Statut Membre -  
 pk -
Bonjour,

Je galere sur un point.

J'ai un input text avec un appel de fonction sur le onChange.
Je passe en parametre une valeur qui peut contenir une apostrophe, d'ou le probleme.

J'aurais besoin d'un convertisseur pour pouvoir transformer mes ' en \'. Addslashes le fait mais c coté serveur non? Il me le faudrait en javascript et pouvant etre effectuée juste avant mon onChange.

Merci de m'aider.

6 réponses

  1. pk
     
    escape ne permet pas d'échapper les apostrophes !!!
    Alors pourquoi la mauvaise réponse est marqué comme celle qui résout le pb ???
    8
  2. amarine
     
    j'ai oublié un point:
    document.formulaire.NOMINPUT.value.split("'").join("\'");
    4
    1. eli
       
      slt,
      moi g u le meme pb (je construis des requetes en javascript que je balance a php) et avec le .split("'").join("\'"); ca marche nikel.
      Pour remplacer des " il faut faire .split("\"").join("\\\"");
      0
    2. Aurélien
       
      Bonjour tout le monde,
      perso je cherche une fonction qui soit capable de me remplacer tous les caractères spéciaux par sont équivalent utf8...les accents, mais aussi les apostrophe et autre caractères d'échapement...quelqu'un à t'il ca sous la main ?

      merci
      Aurélien
      0
    3. Thibault
       
      C'est moi qui ne suis pas doué ou ça ne marche pas ?

      Je précise que je ne suis pas très doué en JavaScript

      1° Je récupère les données dans une variable

      var titrefromdb = resultat.getAttribute('titre');
      (il s'agit d'un parsing d'XML)


      titrefromdb.split("'").join("\'");

      Ne fais rien du tout

      3° Même chose pour

      titrefromdb.split("\"").join("\\\"");

      Pouvez vous m'aider ?
      0
      1. slooptoo > Thibault
         
        split + join = berk (desole mais bon)
        utiliser replace...
        titrefromdb = titrefromdb.replace(/'/g,"\\'");

        petite explication
        /'/g est une expression reguliere 'identifiant' tous les caracteres ' du string "g" signifiant "global"
        on remplace donc chaque quote par \\'
        "\\" parce que "\" est un caractere d echappement donc il faut lui meme l echapper... c est pas clair du tout... difficile d expliquer ca
        0
    4. Thibault
       
      La bonne solution :

      function addslashes(ch) {
      ch = ch.replace(/\\/g,"\\\\")
      ch = ch.replace(/\'/g,"\\'")
      ch = ch.replace(/\"/g,"\\\"")
      return ch
      }
      0
  3. amarine
     
    j'ai eu un problème un peu similaire (réception d'une valeur dans un tag sur lequel je n'ai pas la main et dans lequel il y a une apostrophe). Je n'avais pas à le passer en paramètre à une fonction mais je pense que tu devrais essayer de passer en paramètre à ta fonction:
    document.formulaire.NOMINPUT.valuesplit("'").join("\'");

    Merci de faire un retour si ça fonctionne
    2
  4. mathias_duc Messages postés 14 Statut Membre 1
     
    escape?
    les guillemets ne fonctionne pas pour moi :'/
    et comment conserver des retour chariot
    et éviter des beugue si on a des crochet comme: > .
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. echappé
     
    voir de près escape et/ou unescape
    0
  7. aymanochko
     
    L'utilisation de la fonction escape resout parfaitement ce problème
    0