使用 javascript 删除除 <br> 或 <br/> 标签之外的 html 标签

新手上路,请多包涵

我想使用 javascript 从字符串中删除除 <br><br/> 标签之外的所有 html 标签。我见过很多这样的问题,但他们的回答将删除所有 html 标签,包括 <br><br/> 标签。

有谁知道正则表达式可以做到这一点?

原文由 cp100 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

尝试这个

 function remove_tags(html)
 {
   var html = html.replace("<br>","||br||");
   var tmp = document.createElement("DIV");
   tmp.innerHTML = html;
   html = tmp.textContent||tmp.innerText;
   return html.replace("||br||","<br>");
 }

原文由 Sudz 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用否定前瞻(通过使用正则表达式,例如 /<(?!br\s*\/?)[^>]+>/g ):

 var html = 'this is my <b>string</b> and it\'s pretty cool<br />isn\'t it?<br>Yep, it is. <strong>More HTML tags</strong>';
html = html.replace(/<(?!br\s*\/?)[^>]+>/g, '');

console.log(html);
// this is my string and it's pretty cool<br />isn't it?<br>Yep, it is. More HTML tags

演示

原文由 h2ooooooo 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题