Est-il un moyen facile de prendre une chaîne de html en JavaScript et dépouiller le html?
Réponses
Trop de publicités?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 || "";
}
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
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.