2013-01-15 2 views
29

Possible en double:
JavaScript/jQuery HTML EncodingComment faites-vous coder html en utilisant javascript?

J'ai des balises HTML doivent être codées.

<b>test</b> 

J'ai besoin de coder à:

&lt;b&gt;test&lt;/b&gt; 

J'utilise échapper, mais il ne fonctionne pas.

document.write(escape("<b>test</b>")); 

le résultat que je suis est

%3Cb%3Etest%3C/b%3E 

ce n'est pas ce que je pensais. est-il un autre moyen de coder html en utilisant javascript?

+1

Vous devriez toujours vérifier pour voir si quelqu'un a déjà posté à ce sujet avant =) – afreeland

+8

@Chase, ce n'est pas une double question du tout, ** toutes les réponses à cette question utilisent jQuery et jQuery seulement * *, ici jQuery peut ne pas être utilisé. – gdoron

+2

@gdoron - Ne soyez pas découragé par le fait que le lien a 'jQuery' dans le nom. En fait, @Anentropic répond parfaitement à la question au bas de la page. – Chase

Répondre

38

Comme posted previously par @CMS

function htmlEncode(value){ 
    //create a in-memory div, set it's inner text(which jQuery automatically encodes) 
    //then grab the encoded contents back out. The div never exists on the page. 
    return $('<div/>').text(value).html(); 
} 

function htmlDecode(value){ 
    return $('<div/>').html(value).text(); 
} 

htmlEncode('<b>test</b>') 
// result"&lt;b&gt;test&lt;/b&gt;" 

Cela semblait fonctionner très bien ... sauf si vous voulez une version sans jQuery. Dans ce cas, le thread lié devrait aider avec d'autres méthodes.

+3

Il suffit de copier collé du lien dans les commentaires. – jholloman

+65

-1, jQuery n'est pas la même chose que JavaScript. – ceejayoz

+1

lol @jholloman quand j'ai posté j'ai vu un poste identique et un commentaire reliant au même poste auquel je me suis connecté. Nous avons tous frappé en même temps .. Je suppose que nous sommes tous au-dessus =) – afreeland

3
var html = "<b>test</b>"; 
var result = html.replace(/</g,"&lt;").replace(/>/g,"&gt;"); 
+7

Qu'en est-il de '&' à '&' ..? – GKFX

+1

Don « t utiliser document.write. Voir http://stackoverflow.com/questions/802854/why-is-document-write-considered-a-bad-practice – davidgoli

+2

@davidgoli Je ne suis pas un débutant js et je sais à propos de' Les problèmes de document.write' et je ne m'en sers généralement pas, mais je ne l'utilise maintenant qu'à des fins de démonstration, car je ne m'attends pas à ce que OP copie et colle le code.Donc, si c'est le motif que vous avez downvoted ma réponse, s'il vous plaît reconsidérer –

Questions connexes