如何只使用NodeJS获取HTML标签?
我有这个:
<html>
<head>
Hi
</head>
<body>
<center id="fantastic">
Hi , hello
</center>
</body>
</html>
我想要删除你好,你好,只获取标签,我也想删除id =“太棒了”。 任何的想法?任何正则表达式?
答案 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