javascript - 如何使用 javascript 去除除 <a></an>、<img>(内部属性)和 <br> 之外的所有常规 html 标签?

标签 javascript jquery html strip

当用户创建一条消息时,会有一个多框,这个多框连接到一个设计面板,让用户可以更改字体、颜色、大小等。当消息被提交时,消息将以 html 标签显示,如果用户更改了字体的颜色、大小等。

注意:我需要设计面板,我知道可以删除它,但事实并非如此:)

这是一个 Sharepoint 标准,我唯一的解决方案是在显示时使用 javascript 去除这些标签。用户应该只能插入链接、图像和添加换行符。

这意味着除了<a></a> 之外的所有html 标签都应该被删除。 , <img><br>标签。

<img> 中的属性也很重要不会被删除的标签。可以这样玩:

<img src="/image/Penguins.jpg" alt="Penguins.jpg" style="margin:5px;width:331px;">

如何使用 javascript 完成此操作?

我曾经使用下面的代码隐藏 C# 代码,它工作得很好,但它会去除除 <br> 之外的所有 html 标签。仅标记。

public string Strip(string text)
{
   return Regex.Replace(text, @"<(?!br[\x20/>])[^<>]+>", string.Empty);
}

非常感谢任何形式的帮助

最佳答案

这是否符合您的要求? http://jsfiddle.net/smerny/r7vhd/

$("body").find("*").not("a,img,br").each(function() {
    $(this).replaceWith(this.innerHTML);
});

基本上选择除 a、img、br 之外的所有内容,并用它们的内容替换它们。

关于javascript - 如何使用 javascript 去除除 <a></an>、<img>(内部属性)和 <br> 之外的所有常规 html 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18128125/

相关文章:

javascript - 响应式(Reactive)编程 - Node.js 中的 RxJS 与 EventEmitter

jquery - 自动转换 $.AJAX 响应中的所有日期

html - 如何更改 Angular 组件*内部*的 HTML 标签的样式?

php - 当 css/html 在 PHP 代码中时解析错误

javascript - 使用 jQuery 在 html 中动态设置默认选择

javascript 不是构造函数

javascript - jQuery 中的 PHP (WordPress)

javascript - Jquery将SUM的结果发送到div

javascript - jQuery .fadeTo() -- 淡出后淡入

html - 如何在 <tr> 标签上获取 css 背景颜色以跨越整行