Jquery从带有特殊字符的html中提取文本

时间:2016-06-03 20:09:06

标签: jquery html special-characters

我想从一段html中提取纯文本。我知道像.text()这样的常用方法。然而,这似乎不起作用。我收到一个看起来像这样的字符串:

<p class="MsoNormal" style="margin-bottom: 6pt; text-align: justify;">A concepção e projeto de qualquer produto requer do projetista a habilidade de examinar fatores que determinam o tipo (de produto), a informação a ser exibida, o perfil de usuário, o padrão de uso (do produto) e a interação do usuário com o produto. Perceba que esses fatores compreendem a base do que é denominado “user experience”. Mas, o que é <em>user experience</em>? Trata-se da experiência do usuário quando interage com produtos ou serviços. Aqui, produto pode ser qualquer coisa como, por exemplo, um fogão, uma maçaneta de porta, um painel de automóvel, um iPod, um iPad ou software. Qualquer desses produtos ou até serviços (como oferecidos em web sites), têm a usabilidade como atributo determinante da qualidade perceptível aos usuários. Tudo isso nos remete a uma característica importante a qualquer produto ou serviço: simplicidade. Nesse sentido, este artigo trata de <em>user experience</em> (experiência do usuário) pode ser considerada para prover maior usabilidade a produtos na era da conectividade.</p>

如果我使用众所周知的提取文本的方法,它只会留下html标签。

我想保留由特殊字符代表的字符,例如&但我想删除html标记,例如<p class = ...有干净的解决方案吗?

2 个答案:

答案 0 :(得分:1)

这可能会起到作用:

var myStr = '<p class="MsoNormal" style="margin-bottom: 6pt; text-align: justify;">A concepção e projeto de qualquer produto requer do projetista a habilidade de examinar fatores que determinam o tipo (de produto), a informação a ser exibida, o perfil de usuário, o padrão de uso (do produto) e a interação do usuário com o produto. Perceba que esses fatores compreendem a base do que é denominado “user experience”. Mas, o que é <em>user experience</em>? Trata-se da experiência do usuário quando interage com produtos ou serviços. Aqui, produto pode ser qualquer coisa como, por exemplo, um fogão, uma maçaneta de porta, um painel de automóvel, um iPod, um iPad ou software. Qualquer desses produtos ou até serviços (como oferecidos em web sites), têm a usabilidade como atributo determinante da qualidade perceptível aos usuários. Tudo isso nos remete a uma característica importante a qualquer produto ou serviço: simplicidade. Nesse sentido, este artigo trata de <em>user experience</em> (experiência do usuário) pode ser considerada para prover maior usabilidade a produtos na era da conectividade.</p>'

var decoded = $("<div/>").html(myStr).text();
console.log(decoded);

输出将删除HTML,但保留实体。

JSFiddle:https://jsfiddle.net/9Lpq24qv/

答案 1 :(得分:0)

根据Hanlets的回答,我找到了一个有效的解决方案。然而,它看起来对我来说仍然不是很优雅,也许有人知道更好的方式。

var myStr = '&lt;p class="MsoNormal" style="margin-bottom: 6pt; text-align: justify;"&gt;A concep&amp;ccedil;&amp;atilde;o e projeto de qualquer produto requer do projetista a habilidade de examinar fatores que determinam o tipo (de produto), a informa&amp;ccedil;&amp;atilde;o a ser exibida, o perfil de usu&amp;aacute;rio, o padr&amp;atilde;o de uso (do produto) e a intera&amp;ccedil;&amp;atilde;o do usu&amp;aacute;rio com o produto. Perceba que esses fatores compreendem a base do que &amp;eacute; denominado &amp;ldquo;user experience&amp;rdquo;. Mas, o que &amp;eacute; &lt;em&gt;user experience&lt;/em&gt;? Trata-se da experi&amp;ecirc;ncia do usu&amp;aacute;rio quando interage com produtos ou servi&amp;ccedil;os. Aqui, produto pode ser qualquer coisa como, por exemplo, um fog&amp;atilde;o, uma ma&amp;ccedil;aneta de porta, um painel de autom&amp;oacute;vel, um iPod, um iPad ou software. Qualquer desses produtos ou at&amp;eacute; servi&amp;ccedil;os (como oferecidos em web sites), t&amp;ecirc;m a usabilidade como atributo determinante da qualidade percept&amp;iacute;vel aos usu&amp;aacute;rios. Tudo isso nos remete a uma caracter&amp;iacute;stica importante a qualquer produto ou servi&amp;ccedil;o: simplicidade. Nesse sentido, este artigo trata de &lt;em&gt;user experience&lt;/em&gt; (experi&amp;ecirc;ncia do usu&amp;aacute;rio) pode ser considerada para prover maior usabilidade a produtos na era da conectividade.&lt;/p&gt;'

var d1= $("<div/>").html($("<div/>").html(myStr).text())
d2=d1.text()
console.log(d2);

JSFiddle:https://jsfiddle.net/9Lpq24qv/3/