过滤 html 标签属性 filter html tags
从 4.0 开始,过滤标签时不再删除子元素,只会关注标签是否需要过滤,行为如下
// before 4.0
htmlFilter.allowedTags = { p: null, br: null };
htmlFilter.filter('<div><br /><p>hello</p></div>');
result is: ''
// 4.0 +
htmlFilter.allowedTags = { p: null, br: null };
htmlFilter.filter('<div><br /><p>hello</p></div>');
result is: '<br /><p>hello</p>'
More
php version html-filter
js version html-filter
change log2021-05-21 publish 4.3.0 add custom element support
2021-04-18 publish 4.2.2 fix pure text filter bug
2021-02-07 publish 4.2 all tags wouled be removed will the allowedTags attribute is not init with a whitelist
2021-02-03 publish 4.1 optimize the regexp
2019-01-30 publish 3.0.0 Add browser support
2018-10-11 publish 2.0.0 Change parse() function to filter()
2018-12-13 publish 2.0.4 Separate the dom part from main lib
浏览器中使用 ( Browser use )<script src="index.js"></script> <script> var htmlFilter = new HtmlFilter(); // todo sth </script> Node.js
const HtmlFilter = require('html-filter'); const htmlFilter = new HtmlFilter(); // todo sth 过滤标签和属性 - filter tags and attributes
var html = ` <h1><br /><p>user info</p></h1> <div id="myid" style="border: 1px solid red"> <div style="font-weight: bold">Hello</div> <br /> <div id="user" onclick="alert(1)"> <p>zhangsan</p> <p>male</p> <p>20</p> </div> </div> `; var obj = new HtmlFilter(); obj.allowedTags = { p: null, // not support attr div: {id: 1, style: 1}, // support id and style attr br: null }; console.log(obj.filter(html)); // the console result: <br /><p>user info</p> <div id="myid" style="border: 1px solid red"> <div style="font-weight: bold">Hello</div> <br /> <div id="user"> <p>zhangsan</p> <p>male</p> <p>20</p> </div> </div>
版权声明:
1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。2、网站不提供资料下载,如需下载请到原作者页面进行下载。