213 votes

Comment échapper à un guillemet simple ( ' ) en javascript ?

Ok, en gros, je fais ça

document.getElementById("something").innerHTML = "<img src='something' onmouseover='change(\'ex1\')' />";

Je ne veux pas de guillemets doubles (") à l'endroit où je mets le \'. Je ne veux qu'un guillemet simple et j'essaie donc de faire en sorte qu'il ne mette pas de guillemets doubles lorsqu'il est utilisé. C'est ce que j'essaie de faire dans le résultat final.

<img src="something" onmouseover="change('ex1')" />

s'échapper ne fonctionne pas pour moi.

201voto

Niet the Dark Absol Points 154811

Vous devez toujours tenir compte de ce que le navigateur verra à la fin. Dans ce cas, il verra ceci :

<img src='something' onmouseover='change(' ex1')' />

En d'autres termes, l'attribut "onmouseover" est juste change( et il y a un autre "attribut" appelé ex1')' sans valeur.

La vérité est que le HTML n'utilise pas \ pour un caractère d'échappement. Mais il reconnaît &quot; y &apos; comme guillemets échappés et apostrophes, respectivement.

Armé de cette connaissance, utilisez ceci :

document.getElementById("something").innerHTML = "<img src='something' onmouseover='change(&quot;ex1&quot;)' />";

... Ceci étant dit, vous pourriez simplement utiliser des guillemets JavaScript :

document.getElementById("something").innerHTML = "<img src='something' onmouseover='change(\"ex1\")' />";

182voto

h2ooooooo Points 18164

La réponse est très simple :

Vous l'avez déjà placé entre guillemets, il n'est donc pas nécessaire de l'échapper avec la commande \ .

Si vous voulez échapper aux guillemets simples dans une chaîne de guillemets simples :

var string = 'this isn\'t a double quoted string';
var string = "this isn\"t a single quoted string";
//           ^         ^ same types, hence we need to escape it with a backslash

ou si vous voulez vous échapper \' vous pouvez échapper au bashslash pour obtenir \\ et la citation à \' comme ça :

var string = 'this isn\\\'t a double quoted string';
//                    vvvv
//                     \ ' (the escaped characters)

Toutefois, si la chaîne de caractères est contenue dans un autre type de guillemet, il n'est pas nécessaire d'utiliser l'échappement :

var string = 'this isn"t a double quoted string';
var string = "this isn't a single quoted string";
//           ^        ^ different types, hence we don't need escaping

40voto

mburm Points 429

Vous pouvez échapper à un ' en JavaScript comme \'

22voto

loganfsmyth Points 25483

Étant donné que les valeurs se trouvent à l'intérieur d'un attribut HTML, vous devez utiliser la méthode suivante &apos;

"<img src='something' onmouseover='change(&apos;ex1&apos;)' />";

5voto

David Tayfun Points 1
    document.getElementById("something").innerHTML = "<img src=\"something\" onmouseover=\"change('ex1')\" />";

OU

    document.getElementById("something").innerHTML = '<img src="something" onmouseover="change(\'ex1\')" />';

Il devrait y avoir du travail..

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X