gpt4 book ai didi

javascript 替换允许的 html 标签

转载 作者:行者123 更新时间:2023-12-02 20:17:26 25 4
gpt4 key购买 nike

我需要使用 javascript 删除所有 html 标签,除了我明确允许的标签。我有一个表单,只允许使用以下标签及其各自的结束标签:

<b> <strong> <i> <em> <u> <br> <pre>
<blockquote> <ol> <ul> <li>
<a href="http://www.somesite.com">link</a>

所有其他标记都应删除。我一直在搜索,但只找到删除所有标签或删除单个标签的实例。这可以简单地完成吗?我不能使用 PHP,必须使用 javascript。有什么解决办法吗?

谢谢!

最佳答案

jQuery.fn.removeTags = function()
{
this.each(function()
{
if(jQuery(this).children().length == 0)
{
jQuery(this).replaceWith(jQuery(this).text());
}
else
{
jQuery(this).children().unwrap();
}
});
return this;
};

jQuery("#container").find(":not(b, strong, i, em, u, br, pre, blockquote, ul, ol, li, a)").removeTags();

确保容器不高于 body 标记。或者,当它取出 headhtmlscript 等标签时,您可能会遇到问题。

此外,如果您想要 :not 可以是一个列表,您可以:

var mylist = ["b" ,"strong", ... etc. etc.];
jQuery(":not(" + mylist.join(", ") + ")").removeTags();

或者甚至将其放入removeTags 函数中。 (可能性是无限的......)

编辑:正如一些人在评论中指出的那样:Javascript 可以关闭。另一件事是我假设你想保留所有内部信息。如果没有,那么只需一个remove()就足够了,正如megakorre建议的那样。

关于javascript 替换允许的 html 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6067107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com