gpt4 book ai didi

javascript - 使用 JsHtmlSanitizer 删除每个 html 标签

转载 作者:行者123 更新时间:2023-11-30 06:36:35 25 4
gpt4 key购买 nike

我终于得到了 JsHtmlSanitizer作为独立的客户端脚本工作。现在我想从字符串中删除所有 HTML 标签,而不仅仅是脚本标签和链接。这个例子

html_sanitize('<b>hello</b><img src="http://google.com"><a href="javascript:alert(0)"><script src="http://www.google.com"><\/script>');

返回“hello”,但我想删除所有标签。

最佳答案

为什么不在清理后使用正则表达式删除所有 HTML 标记?

var input = '<b>hello</b><img src="http://google.com"><a href="javascript:alert(0)"><script src="http://www.google.com"></script>';
var output = null;
output = html_sanitize(input);
output = output.replace(/<[^>]+>/g, '');

这应该会在清理后去除您的输入字符串中的所有 html 标签。

如果您只想进行基本清理(删除脚本和样式标签及其内容和所有 html 标签),您可以在正则表达式中实现整个过程。我在下面演示了一个示例。

var input = '<b>hello</b><img src="http://google.com"><a href="javascript:alert(0)"><script src="http://www.google.com"></script>';
input += '<script> if (1 < 2) { alert("This script should be removed!"); } </script><style type="text/css">.cssSelectorShouldBeRemoved > .includingThis { background-color: #FF0000; } </style>';

var output = null;
output = input.replace(/(?:<(?:script|style)[^>]*>[\s\S]+?<\/(?:script|style)[^>]*>)|<[^>]+>/ig, '');

关于javascript - 使用 JsHtmlSanitizer 删除每个 html 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14030472/

25 4 0