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

Jquery extract text from html with 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=...有没有干净的解决方案?

这可能会成功:

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/

根据 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/