2013-06-26 1 views
0

Je dois enregistrer une valeur de chaîne dans un cookie, et cette chaîne (le nom de famille d'une personne) peut contenir une apostrophe, comme O'Bama.Échapper à l'apostrophe dans une chaîne enregistrée dans un cookie

J'ai essayé lastName.replace(/'/, "\'").toString(); mais j'obtiens undefined dans un cookie. Qu'est-ce que je fais de mal, et comment cela devrait-il être fait correctement?

+0

vous devez utiliser ' "\\ '"', '\ '' est juste échappé ''' qui est juste '''. – jcubic

+2

Vous devez doubler le backslash: '" O'brien ".replace (/ '/ g," \\' ")'. (Et j'ai ajouté le modificateur 'g', pour remplacer plus d'un' '' si cela devait arriver, et toString n'est pas nécessaire.) – CBroe

+0

Cela ressemble à une solution correcte ... et pourtant je suis toujours "indéfini". – KeithRules

Répondre

1

Utilisez la fonction escape() en javascript:

lastname = escape(lastname); 

Pour annuler cette opération, appelez simplement unescape() ...

Ceci encodera tous les caractères spéciaux pour les stocker dans votre cookie.

Quelques références: http://www.w3schools.com/jsref/jsref_escape.asp

+0

Pourriez-vous élaborer sur l'utilisation de 'unescape'? – KeithRules

+0

pour unescaping faire suivre: 'lastname = unescape (nom de famille);'. Les personnages encodés seront donc décodés. – Atrox111

+0

Suivi votre suggestion, devrait fonctionner très bien ... et pourtant je suis toujours "indéfini". – KeithRules

1

il vous suffit d'échapper à la chaîne en utilisant la fonction javascript:

escape() 

et unescape pour obtenir la valeur réelle

unescape() 
Questions connexes