2013-01-15 11 views
29

Eventuali duplicati:
JavaScript/jQuery HTML Encodingcome si fa a codificare html usando javascript?

devo tag html devono essere codificati.

<b>test</b> 

ho bisogno di codificare a:

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

Sto usando la fuga, ma non funziona.

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

il risultato ho ottenuto è

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

questo non è quello che mi aspettavo. c'è un altro modo per fare la codifica HTML usando javascript?

+1

Si dovrebbe sempre controllare per vedere se qualcuno ha già pubblicato su questo prima =) – afreeland

+8

@Chase, questa non è una domanda duplice copia a tutti, ** tutte le risposte a questa domanda stanno usando jQuery e jQuery solo * *, qui jQuery potrebbe non essere in uso. – gdoron

+2

@gdoron - Non lasciarti scappare dal fatto che il link ha 'jQuery' nel nome. Infatti, @Anentropic risponde perfettamente alla domanda in fondo alla pagina. – Chase

risposta

38

Come posted previously da @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;" 

questo sembrava funzionare bene ... a meno che non si desidera una versione senza jQuery. In questo caso il thread collegato dovrebbe aiutare con altri metodi.

+3

Copia appena incollata dal collegamento nei commenti. – jholloman

+65

-1, jQuery non è uguale a JavaScript. – ceejayoz

+1

lol @jholloman quando ho postato ho visto un post identico e un commento che collega allo stesso post a cui mi sono collegato. Ci siamo tutti colpiti allo stesso tempo .. Suppongo che siamo tutti sopra questo =) – afreeland

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

E a proposito di '&' a '&' ..? – GKFX

+1

Don 't use document.write. Vedi http://stackoverflow.com/questions/802854/why-is-document-write-considered-a-bad-practice – davidgoli

+2

@davidgoli Non sono un principiante js e so di ' document.write' problemi e di solito non lo uso, ma lo sto usando ora solo per scopi dimostrativi, dal momento che non mi aspetto che l'OP copi e copi semplicemente il codice.Quindi, se questo è il motivo per cui hai ridimensionato la mia risposta, ti preghiamo di riconsiderare –