Décoder & retour & en JavaScript

J'ai des chaînes de caractères comme

var str = 'One & two & three';

rendu en HTML par le serveur web. J'ai besoin de transformer ces chaînes en

'One & two & three'

Actuellement, c'est ce que je suis en train de faire (avec l'aide de jQuery):

$(document.createElement('div')).html('{{ driver.person.name }}').text()

Mais j'ai un sentiment troublant que je me suis fais mal.
J'ai essayé

unescape("&")

mais il ne semble pas fonctionner, ni ne decodeURI/decodeURIComponent.

Existe d'autres, plus naturel et élégant moyens de le faire?

  • L'énorme fonction incluse dans cet article semble bien fonctionner: blogs.msdn.com/b/aoakley/archive/2003/11/12/49645.aspx je ne pense pas que c'est le plus intelligent de la solution, mais fonctionne.
  • Comme des chaînes de caractères contenant des entités HTML sont quelque chose de différent de escaped ou URI chaînes codées, ces fonctions ne fonctionnent pas.
  • notez que les nouvelles entités nommées ont été ajoutés à HTML (par exemple via l'HTML 5 spec) car cette fonction a été créé en 2003 par exemple, il ne reconnaît pas 𝕫. C'est un problème à l'évolution de la spec; en tant que tel, vous devez choisir un outil qui est maintenu à résoudre avec.
  • oui, je suis totalement d'accord! C'est une belle expérience pour en revenir à cette question après une couple d'années, merci!
InformationsquelleAutor Art | 2010-09-13