我怎样才能只获得 html 的标签?
How can I get only tags of html?
如何使用 NodeJS 仅获取 HTML 标签?
我有这个:
<html>
<head>
Hi
</head>
<body>
<center id="fantastic">
Hi , hello
</center>
</body>
</html>
我想删除 Hi 和 Hi , Hello 并只获取标签,我也想删除 id="fantastic"。
任何的想法?任何正则表达式?
您可以尝试使用像 cheerio
- https://github.com/cheeriojs/cheerio
这样的库
假设您在 Javascript 字符串中有来源 HTML 并且它是合法的 HTML 并且 HTML 属性不包含“>”或“ <" 字符,这应该有效:
var source = "your html here";
var result = source.match(/<.*?>/g).map(function(item) {
return item.replace(/<\s+/, "<").replace(/\s.*?(\/?>)$/, "");
}).join("");
工作演示:http://jsfiddle.net/jfriend00/6q0gyugd/
这使用正则表达式将 HTML 标签隔离到一个数组中,然后使用 .map()
遍历该数组以删除标签中的任何前导空格,然后从中删除任何属性每个标签,然后将它们连接回 HTML.
的字符串
为了使任何可能的合法 HTML 成为最强大的,您也可以使用实际的 HTML 解析器(它可能比任何正则表达式都更智能)来解析实际的HTML 个标签,然后遍历已解析的树以仅输出标签。
如何使用 NodeJS 仅获取 HTML 标签?
我有这个:
<html>
<head>
Hi
</head>
<body>
<center id="fantastic">
Hi , hello
</center>
</body>
</html>
我想删除 Hi 和 Hi , Hello 并只获取标签,我也想删除 id="fantastic"。 任何的想法?任何正则表达式?
您可以尝试使用像 cheerio
- https://github.com/cheeriojs/cheerio
假设您在 Javascript 字符串中有来源 HTML 并且它是合法的 HTML 并且 HTML 属性不包含“>”或“ <" 字符,这应该有效:
var source = "your html here";
var result = source.match(/<.*?>/g).map(function(item) {
return item.replace(/<\s+/, "<").replace(/\s.*?(\/?>)$/, "");
}).join("");
工作演示:http://jsfiddle.net/jfriend00/6q0gyugd/
这使用正则表达式将 HTML 标签隔离到一个数组中,然后使用 .map()
遍历该数组以删除标签中的任何前导空格,然后从中删除任何属性每个标签,然后将它们连接回 HTML.
为了使任何可能的合法 HTML 成为最强大的,您也可以使用实际的 HTML 解析器(它可能比任何正则表达式都更智能)来解析实际的HTML 个标签,然后遍历已解析的树以仅输出标签。