如何使用NodeJs删除非标签Html元素
How to Remove a Non Tag Html Element using NodeJs?
我有一个这样的HTML字符串:
<div>
<p>a</p>
<p>b</p>
<p>c</p>
<img src='a.jpg'>
<img src='b.jpg'>
d
e
f
</div>
我使用了sanitation -html只允许标记p和img,但是,它仍然返回所有文本。
我想要的最后一个结果是删除d, e和f,如下所示:
<div>
<p>a</p>
<p>b</p>
<p>c</p>
<img src='a.jpg'>
<img src='b.jpg'>
</div>
下面是我使用sanititizehtml:
的代码var htmlString = sanitizeHtml(news.htmlcontent, {
allowedTags: [ 'p', 'img' ],
exclusiveFilter: function(frame) {
return (frame.tag === 'img' && frame.attribs.src.indexOf('rfa_resources/graphics') !== -1);
}
});
如果代码位于<div>
标记之间,那么下面的示例将删除不需要的文本。
var sanitizeHtml = require('sanitize-html');
var HTMLstring = "<div><p>a</p><p>b</p><p>c</p><img src='a.jpg'><img src='b.jpg'>def</div>";
var sanitizedString = sanitizeHtml(HTMLstring, {
allowedTags: [ 'p', 'img', 'div' ],
exclusiveFilter: function(frame) {
return (frame.tag === 'img' && frame.attribs.src.indexOf('rfa_resources/graphics') !== -1);
},
transformTags: {
'div': function(tagName) {
return {
tagName: 'div',
text: ''
};
}
},
});
console.log(sanitizedString); // <div><p>a</p><p>b</p><p>c</p><img src="a.jpg" /><img src="b.jpg" /></div>
那些正在寻求使用jquery实现相同目标的人,以下是帮助实现这一目标的代码:
function getText(str){
$('body').append('<section id="test"></section>');
$('#test').append(str);
var text = $("#test div").contents().filter(function() {
return this.nodeType == 3;
}).text();
$('#test').remove();
return text;
}
var myString = "<div><p>a</p><p>b</p><p>c</p><img src='a.jpg'><img src='b.jpg'>def</div>";
var text = getText(myString);
var result = myString.replace(text, '');
console.log(result); // <div><p>a</p><p>b</p><p>c</p><img src='a.jpg'><img src='b.jpg'></div>
但请注意,所有的文本节点应该出现在一起,否则代码将需要很少的修改来删除所有的。
相关文章:
- 如何在tinymce编辑器中将点击事件绑定到html标签
- 从模板标签获取html
- 如何将具有相同功能的两个select html标签的两个JS组合在一起
- Html不是'我没认出Angularjs吐出来的标签
- 带有html标签的Summernote内容
- 为什么我的HTML标签消失了
- 不使用自定义CSS或HTML(使用框架方法)的角度材质文本输入或文本区域标签大小
- 如何忽略单词like“”中的未使用空格;测试-文本”;同时构建html标签
- 在AngularJS中过滤-html标签中的文本
- 如何在另一个 html 标签内选择 web 元素硒 Web 驱动程序与 html 源
- 选择标签 HTML 上的值将数组转换为字符串 Javascript
- 如何以编程方式切换标签HTML/js
- 如何使用NodeJs删除非标签Html元素
- 知道什么时候“音频”标签HTML已经发挥了作用
- 通过标签html中的照片列表更改
- 标签内的另一个标签html
- Sup标签内的标题标签html
- 当我选择另一个选择标签HTML<选择>
- 从节点检索标签HTML
- 如何从网页中删除所有标签(HTML JS PHP CSS JQUERY)