Convertir HTML en texte brut en JS sans navigateur environnement
J'ai un CouchDB voir le plan de la fonction qui génère un résumé d'un document HTML (première x
caractères de texte). Malheureusement je n'ai pas d'environnement de navigateur pour convertir HTML en texte brut.
Actuellement, je utiliser ce multi-étape regexp
html.replace(/<style([\s\S]*?)<\/style>/gi, ' ')
.replace(/<script([\s\S]*?)<\/script>/gi, ' ')
.replace(/(<(?:.|\n)*?>)/gm, ' ')
.replace(/\s+/gm, ' ');
alors que c'est un très bon filtre, il n'est évidemment pas parfait et quelques restes de glisser à travers, parfois. Est-il un meilleur moyen de convertir en texte brut sans un environnement de navigateur?
il peut venir vers le bas à l'aide de regex que vous avez énumérés, pour l'essentiel, de remplace et ensuite à l'aide d'une liste spécifiée remplace, tels que :actif; pour compléter le nettoyage.
stackoverflow.com/a/29706729/3338098 préserve de nouvelles lignes et de bandes de balises html
stackoverflow.com/a/29706729/3338098 préserve de nouvelles lignes et de bandes de balises html
OriginalL'auteur Erik Aigner | 2013-03-02
Vous devez vous connecter pour publier un commentaire.
Cette expression régulière travaux:
OriginalL'auteur Gael
Avec TextVersionJS ( http://textversionjs.com ), vous pouvez convertir le HTML en texte brut. C'est du pur javascript (avec des tonnes de RegExps) de sorte que vous pouvez l'utiliser dans le navigateur et dans node.js ainsi.
Dans node.js il ressemble:
(J'ai copié l'exemple de la page, vous aurez à ngp installer le module premier.)
OriginalL'auteur gyula.nemeth
Convertisseur de HTML en texte brut comme Gmail:
Si vous pouvez utiliser
jQuery
:Également des balises comme
<li>
peuvent avoir des attributs...ne pas ajouter un
\n
dansTEXT1<div>TEXT2</div>
, c'est à dire qu'elle renvoieTEXT1TEXT2\n
+1 pour la bonne réponse. mais je veux aussi de remplacer plus d'un caractère de nouvelle ligne à un dans le code ci-dessus. s'il vous plaît aider
var html = jQuery(html).text();
est plus simple.OriginalL'auteur EpokK
Vous pouvez essayer de cette façon.
textContent
avecinnerText
aucun d'eux compatible avec tous les navigateurs:OriginalL'auteur Dostonbek Oripjonov
C'est assez simple, vous pouvez également mettre en place un "toText" prototype:
OriginalL'auteur Alberto Di Cagno