Téléchargement
illégal
Posez votre question Signaler

Apostrophe en JavaScript [Résolu]

hasan 30Messages postés 3 juillet 2004Date d'inscription - Dernière réponse le 14 déc. 2010 à 12:02
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.
Lire la suite 

Apostrophe en JavaScript »

11 réponses
Réponse
+5
moins plus
escape ne permet pas d'échapper les apostrophes !!!
Alors pourquoi la mauvaise réponse est marqué comme celle qui résout le pb ???
Ajouter un commentaire
Réponse
+2
moins plus
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
Ajouter un commentaire
Réponse
+2
moins plus
j'ai oublié un point:
document.formulaire.NOMINPUT.value.split("'").join("\'");
Thibault - 27 nov. 2006 à 17:08
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 ?
slooptoo - 27 nov. 2006 à 17:58
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
Thibault - 27 nov. 2006 à 18:36
La bonne solution :

function addslashes(ch) {
ch = ch.replace(/\\/g,"\\\\")
ch = ch.replace(/\'/g,"\\'")
ch = ch.replace(/\"/g,"\\\"")
return ch
}
Ajouter un commentaire
Réponse
+1
moins plus
escape?
les guillemets ne fonctionne pas pour moi :'/
et comment conserver des retour chariot
et éviter des beugue si on a des crochet comme: > .
Ajouter un commentaire
Réponse
+0
moins plus
voir de près escape et/ou unescape
Ajouter un commentaire
Réponse
+0
moins plus
L'utilisation de la fonction escape resout parfaitement ce problème
Ajouter un commentaire
Ce document intitulé « Apostrophe en JavaScript » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?