如何用JavaScript删除html标签只保留BR,B和I标签?

时间:2015-10-28 15:44:04

标签: javascript jquery regex preg-replace

当用户点击按钮将其删除并仅保留BR B和I标签时,我想从div中删除富文本。我尝试了函数<div id="content" contenteditable></div> <button id="remove">Remove</button> <script> $(document).on('click', '#remove', function(e) { var a = $("#content").html(); a = a.replace(/<\/?[^>]+(>|$)/g, ""); $("#content").html(a); }); </script> ,但它删除了所有标签。

<p>paragraph 1 <b>bold</b></p><br><br><p>paragraph 2 <i>italic</i></p>

示例输入
paragraph 1 <b>bold</b><br><br>paragraph 2 <i>italic</i>

我想要什么
{{1}}

1 个答案:

答案 0 :(得分:0)

  

仅保留BR B和I标签

尝试使用$(document).on('click', '#remove', function(e) { var a = $("#content").html(); a = a.replace(/<\/?[^>]+(>|$)/g, function(match) { return !/br|b/i.test(match) ? "" : match }); $("#content").html(a); });的函数参数返回空字符串,如果“b”或“br”,不区分大小写,在匹配中找不到

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="content" contenteditable>
<p>paragraph 1 <b>bold</b></p><br><br><p>paragraph 2</p>
</div>
<button id="remove">Remove</button>
document.getElementsByClassName('nice')[0].style.display='none'