作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何使用 NodeJS 只获取 HTML 标签?
我有这个:
<html>
<head>
Hi
</head>
<body>
<center id="fantastic">
Hi , hello
</center>
</body>
</html>
我想删除 Hi 和 Hi , Hello 并只获取标签,我也想删除 id="fantastic"。任何想法?有正则表达式吗?
最佳答案
假设您的 Javascript 字符串中有源 HTML,并且它是合法的 HTML,并且 HTML 属性不包含“>”或“<”字符,则这应该有效:
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 标签,然后遍历解析的树来输出只是标签。
关于javascript - 如何只获取html标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30415192/
我是一名优秀的程序员,十分优秀!