如何删除除粗体,斜体,下划线和新行之外的所有html标签?

时间:2012-07-06 15:07:47

标签: regex

我对正则表达不太好,所以我正在寻求帮助。

我想知道删除除以下内容之外的所有html标记的正则表达式是什么。

  1. 粗体
  2. 斜体
  3. 下划线
  4. 新行
  5. 谢谢你们。希望你能帮我解决这个问题。

4 个答案:

答案 0 :(得分:1)

用空字符串<[]>.*?</[]>替换正则表达式 并收集到[]所有包含标记,例如<[mas]>.*?</[mas]>捕获<m>anything</m> <a>anything</a> <s>anything</s>

答案 1 :(得分:1)

this之外的笑话,不要尝试使用Regex解析HTML,使用HTML解析器。它会让你的生活变得轻松。

谷歌搜索或搜索“HTML解析器”+您选择的语言。

答案 2 :(得分:1)

我不确定为什么其他答案认为您需要解析HTML。你只需要替换一些模式而不是其他模式。所以你使用回调函数来替换正则表达式......

var keep = {
    b: true,
    i: true,
    u: true,
    br: true
};

html.replace(/<\/?([a-z]+) ?[^>]*>/g, function(wholeMatch, tagName)
{
    if (keep[tagName]) {
        return wholeMatch;
    }

    return '';
});

答案 3 :(得分:-1)

  • 您可以先使用正则表达式替换粗体,斜体,下划线标签 到临时字符串
  • 然后将所有html标签替换为纯文本
  • 将临时字符串替换回粗体,斜体,下划线标签

下面是带有代码的详细链接。

http://techierocks.com/2018/07/remove-html-tags-css-styling-except-bold-italic-underline-new-line.html