794 votes

Bande de HTML à partir du Texte JavaScript

Est-il un moyen facile de prendre une chaîne de html en JavaScript et dépouiller le html?

882voto

Shog9 Points 82052

Si vous êtes en cours d'exécution dans un navigateur, puis la façon la plus simple est juste de laisser le navigateur le faire pour vous...

function strip(html)
{
   var tmp = document.createElement("DIV");
   tmp.innerHTML = html;
   return tmp.textContent || tmp.innerText || "";
}

734voto

nickf Points 185423
myString.replace(/<(?:.|\n)*?>/gm, '');

274voto

Mark Points 1115

Façon la plus simple:

jQuery(html).text();

Qui récupère tout le texte à partir d'une chaîne de html.

60voto

user999305 Points 313

Comme une extension de la méthode jQuery, si votre chaîne pourrait pas contian HTML (par exemple, si vous essayez de supprimer le code HTML d'un champ de formulaire)

jQuery(html).text();

retourne une chaîne vide si il n'y a pas de code html

Utilisation:

jQuery('<p>' + html + '</p>').text();

au lieu de cela

48voto

Jibberboy2000 Points 176

La conversion de HTML pour le Texte Brut de l'emailing en gardant des liens hypertexte (a href) intacte

La fonction ci-dessus posté par hypoxide fonctionne très bien, mais je cherchais quelque chose qui serait de l'essentiel de convertir HTML créé dans un éditeur de texte enrichi (par exemple FCKEditor) et effacer tous HTML, mais laisser tous les Liens en raison du fait que je voulais à la fois le HTML et la version en texte brut à l'aide de la création de la pièces correctes pour un STMP e-mail (format HTML ou texte brut).

Après un long moment de recherche Google moi-même et mes collègues est venu avec cela, utilisez le moteur d'expressions régulières en Javascript:-

str='this string has <i>html</i> code i want to <b>remove</b><br>Link Number 1 -><a href="http://www.bbc.co.uk">BBC</a> Link Number 1<br><p>Now back to normal text and stuff</p>
';
str=str.replace(/<br>/gi, "\n");
str=str.replace(/<p.*>/gi, "\n");
str=str.replace(/<a.*href="(.*?)".*>(.*?)<\/a>/gi, " $2 (Link->$1) ");
str=str.replace(/<(?:.|\s)*?>/g, "");

le str var commence comme ceci:-

this string has <i>html</i> code i want to <b>remove</b><br>Link Number 1 -><a href="http://www.bbc.co.uk">BBC</a> Link Number 1<br><p>Now back to normal text and stuff</p>

ce qui rend comme ceci:-

--start--

this string has <i>html</i> code i want to <b>remove</b><br>Link Number 1 -><a href="http://www.bbc.co.uk">BBC</a> Link Number 1<br><p>Now back to normal text and stuff</p>
--end--
<br><br>

et puis, après que le code est exécuté, il ressemble à ceci:-

this string has html code i want to remove
Link Number 1 -> BBC (Link->http://www.bbc.co.uk)  Link Number 1


Now back to normal text and stuff

Comme vous pouvez le voir le tout le HTML a été enlevée, et le Lien ont été persévéré avec le lien, le texte est toujours intacte. J'ai également remplacé le

et
tags \n (nouvelle ligne char), de sorte qu'une certaine sorte de formatage visuel a été retenu.

Pour modifier le format de lien (par exemple. "De la BBC (Lien->http://www.bbc.co.uk)" ) il suffit d'éditer le " $2 (Lien->$1) ", $1 est le href URL/URI et le $2 est le lien texte. Avec les liens directement dans le corps du texte brut de la plupart des Clients de Messagerie SMTP convertir ces ainsi, l'utilisateur a la possibilité de cliquer sur eux.

J'espère que vous trouverez ce utile.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X