2013-09-06 11 views
6

Ho guardato, guardato e guardato ma non ho trovato nulla su questo. Quindi, consente di dire che ho questa stringa ...Rimuovere i tag <script> da una stringa insieme al contenuto tra di loro

var str = '<script>blah blah blah</script><a>...</a><div>...</div><p>...</p>'; 

ho bisogno per togliere i tag di script dalla stringa insieme a tutti i contenuti tra i tag. Una volta che il tag script è stato rimosso, è necessario aggiungerlo a un'area di testo. Come faccio nel mondo con jQuery?

Qualsiasi aiuto sarebbe molto apprezzato!

risposta

10

dal momento che nessuno altro sta per inviare una routine semplice e affidabile per la lavorazione, credo sarà:

function noscript(strCode){ 
    var html = $(strCode.bold()); 
    html.find('script').remove(); 
return html.html(); 
} 


alert( noscript("<script>blah blah blah</script><div>blah blah blah</div>") ); 
//shows: "<div>blah blah blah</div>" 
+0

Ha funzionato come un campione! Ho anche dovuto farlo in un'altra area del codice per un'altra area di testo, quindi la funzione era una buona chiamata! Grazie, – barrettathome

1

Prova questo: -

var str= "<script>blah blah blah</script><div>blah blah blah</div>"; 
var html = $(str.bold()); 
html.find('script').remove(); 
+0

dove viene inserita la stringa nel codice? – dandavis

+0

var html = $ (str.bold()); funziona meglio dal momento che non si basa sull'avere un tag wrapper esterno ... – dandavis

+0

@dandavis: - Grazie amico !!! Aggiornato quello nella mia risposta !! –

0

Ecco un violino (https://jsfiddle.net/skoley/9dnmbj3d/) delle risposte che funziona meglio preso da diverse altre fonti, il merito va a loro.

function noscript(strCode){ 
    var html = $(strCode.italics()); 
    html.find('script').remove(); 
return html.html(); 
} 

function noscript_alt(str) 
{ 
var div = $('<div>').html(str); 
div.find('script').remove(); 
str = div.html(); 
return str;} 
Problemi correlati