Javascript 使用JS正则表达式删除除所需标记以外的所有标记

Javascript 使用JS正则表达式删除除所需标记以外的所有标记,javascript,html,regex,tags,Javascript,Html,Regex,Tags,我需要从字符串中删除除允许标记列表之外的所有标记。我必须在javascript中使用正则表达式 因此,如果我的字符串中有: <html> <b>my text</b> is just <strong>an example</strong> </html> 我的文本只是一个例子 我允许的标签列表是:b,strong 结果必须是: <b>my text</b> is just <str

我需要从字符串中删除除允许标记列表之外的所有标记。我必须在javascript中使用正则表达式

因此,如果我的字符串中有:

<html>
    <b>my text</b> is just <strong>an example</strong>
</html>

我的文本只是一个例子
我允许的标签列表是:b,strong

结果必须是:

<b>my text</b> is just <strong>an example</strong>
我的文本只是一个例子
看起来很简单,但是正则表达式让我摆脱了我:)


非常感谢亲爱的朋友们

我刚在phpjs.org上查到这个:

功能条标签(输入,允许){
allowed=((allowed | | |“”)+).toLowerCase().match(//g)| |[]).join(“”);//确保允许的参数是仅包含小写()
变量标记=/]*>/gi,
commentsAndPhpTags=/|/gi;
返回输入。替换(commentsAndPhpTags.)。替换(标记,函数($0,$1){
允许返回。indexOf(“”)>-1?$0:“”;
});
}

不是我的代码,但它会按照您的要求执行-去除标记,并指定例外情况。

那么您想用正则表达式解析HTML吗?不,OP想去除它,这更简单。唷,我想我能听到蹄声。。。马蹄。幸运的是我错了:)正确地剥离HTML涉及到解析它,这不能只用正则表达式来完成。谢谢,超现实的梦想就是这样!我不是在看php网站:)我们真的需要评论和phptag吗?
function strip_tags (input, allowed) {
    allowed = (((allowed || "") + "").toLowerCase().match(/<[a-z][a-z0-9]*>/g) || []).join(''); // making sure the allowed arg is a string containing only tags in lowercase (<a><b><c>)
    var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,
        commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi;
    return input.replace(commentsAndPhpTags, '').replace(tags, function ($0, $1) {
        return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '';
    });
}