2010-02-01 4 views
1

voici ma fonctionbalises remove qui javascript revient avec le texte

function getInfo(Description) { 


     return Description;  


} 

ici Description a

<p>Info Summary:<span>2.26PM</span> InfoADDED</p> 

maintenant, je veux éliminer balises html avant de retourner le 'Description' pls. help

+0

quelle langue côté serveur sont u utiliser? – Sarfraz

Répondre

0

c'est ce qui a fonctionné pour moi

return Description.replace(/&nbsp;/gi, " ").replace(/(<([^>]+)>)/ig, ""); 

ci-dessus CMS ex est également bon mais c'est ce que équipé le mieux pour moi

0

Essayez d'utiliser une regex pour supprimer les tags.

function getInfo(Description) { 
    return Description.replace(/(<([^>]+)>)/ig,""); 
} 
+0

qu'en est-il des caractères comme   et autres ..? comment les éviter – dexter

0

Un moyen infaillible de le faire serait de parcourir chaque noeud et extraire la chaîne à l'intérieur des noeuds texte et les concaténer.

Si vous avez la possibilité d'utiliser jquery. La fonction text de jquery le fait pour vous.

2

Vous pouvez utiliser un élément fictif DOM , définissez la description comme innerHTML et plus tard obtenir son textContent, qui prendra toutes les balises, et il se chargera de toutes les entités HTML comme &nbsp;:

function getInfo(description) { 
    var tmp = document.createElement('div'); 
    tmp.innerHTML = description; 

    return tmp.textContent || tmp.innerText; 
} 

getInfo('<p>Info Summary:<span>2.26PM</span> InfoADDED</p>&nbsp;'); 
// returns "Info Summary:2.26PM InfoADDED " 

Vérifiez un exemple here.

+0

N'est-il pas préférable d'utiliser une div existante cachée plutôt que de créer de nouvelles divs pour chaque appel de fonction. – rahul

+0

Eh bien, il serait peut-être encore mieux de stocker un élément 'div' dans un clusore et de le réutiliser, car les éléments n'ont pas besoin d'exister dans le DOM. Comme ceci: http://jsbin.com/ilixu/3/edit – CMS

Questions connexes