使用Regex删除某些HTML标记

时间:2014-01-30 16:26:55

标签: javascript html regex tinymce

我使用tinyMCE库编辑HTML,返回如下内容:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
... Your HTML ...
</body>
</html>

我想删除doctype,html,head和body标签,以便

... Your HTML ...

这是我正在使用的功能。

function stripHTML(html) {
    return str.replace(/<(\/?|\!?)(DOCTYPE html|html|head|body)>/, ""); 
}

这只会从字符串中删除<!DOCTYPE html>

如果有更简单的方法,请指出正确的方向。有什么想法吗?

3 个答案:

答案 0 :(得分:7)

function stripHTML(html) {
     return str.replace(/<(\/?|\!?)(DOCTYPE html|html|head|body)>/g, ""); 
}

您需要一个全局修改器来获取所有案例 http://regex101.com/r/aA1vL0

答案 1 :(得分:2)

使用此:

return str.replace(/<(\/?|\!?)(DOCTYPE html|html|head|body)>/g, "");

你没有g全局标志,所以它只替换它匹配的第一个元素。

答案 2 :(得分:0)

\ r \ n符号与您的表达式不匹配的问题。 您可以使用此表达式去除所需的所有内容:

function stripHTML(html) {
      return str.replace(/(<![\w\W]*<body>|(<\/body>\W*<\/html>))/gmi, ""); 
}