剥离HTML标记,但保留内容(javascript / jquery)

时间:2014-10-26 11:30:25

标签: javascript jquery html css regex

在您将其标记为重复之前,我搜索了SO并使用了许多正则表达式而没有得到我想要的结果。

我正在解析html电子邮件的内容,电子邮件的样式和html正在改变我页面的样式。

如何从这些字符串中删除所有CSS和HTML。我尝试过regexp,但我总是在HTML中丢失一些内容。

我认为PHP有​​一个strip_tags函数?这非常有效。在javascript / jquery中有类似的东西吗?

或者该函数的算法是什么,如何将其移植到js / jquery?或者更好的东西,效果很好。

以下是我正在削减的字符串示例:http://pastebin.com/bw8zMNs9

2 个答案:

答案 0 :(得分:1)

Regexp解析HTML并不好。 jQuery.text()似乎做你想做的事。 试试这个:

$htmlString = $("<div>" + YOUR_HTML_STRING + "</div>");

$htmlString.find("style").remove();
$htmlString.find("script").remove();

var rawText = $htmlString.text();

在此处试试:JSFiddle

答案 1 :(得分:-1)

没时间尝试,但这应该有效:

var elems = emailContainer.getElementsByTagName('*');
for(i=0;i<elems.length;i++)
elems[i].outerHTML = elems[i].innerHTML;