我怎样才能获得html的标签?

时间:2015-05-23 16:45:16

标签: javascript html node.js parsing tags

如何只使用NodeJS获取HTML标签?

我有这个:

<html>
<head>
Hi
</head>
<body>
<center id="fantastic">
Hi , hello
</center>
</body>
</html>

我想要删除你好,你好,只获取标签,我也想删除id =“太棒了”。 任何的想法?任何正则表达式?

2 个答案:

答案 0 :(得分:2)

假设您在Javascript字符串中包含源HTML,并且它是合法的HTML,并且HTML属性不包含&#34;&gt;&#34;或&#34;&lt;&#34;字符,这应该工作:

var source = "your html here";

var result = source.match(/<.*?>/g).map(function(item) {
    return item.replace(/<\s+/, "<").replace(/\s.*?(\/?>)$/, "$1");
}).join("");

工作演示:http://jsfiddle.net/jfriend00/6q0gyugd/

这使用正则表达式将HTML标记仅隔离到数组中,然后使用.map()遍历该数组以删除标记中的任何前导空格,然后从每个标记中删除任何属性,然后将它们连接起来回到一串HTML。

要成为最强大的任何可能的合法HTML,您也可以使用实际的HTML解析器(可能比任何正则表达式更聪明)来解析实际的HTML标记,然后将解析后的树转到输出只是标签。

答案 1 :(得分:0)

您可以尝试使用cheerio - https://github.com/cheeriojs/cheerio

等库