JS / Jquery / RegEx - 删除除classZ为XYZ的标签以外的所有标签

时间:2010-09-11 09:58:35

标签: regex class tags

这让我疯了;-)我有一个带有各种span标签的字符串...我想删除所有span标签,除了带有classname XYZ的那些...问题是我还没有找到解决方案离开关闭标签......

我的出发点是这个正则表达式:

 text = text.replace(/<\/?[^>]+(>|$)/g, "");

但是我试图说的所有内容“如果匹配classnameXYZ到目前为止还没有做到......”

有什么想法吗? 提前谢谢!

2 个答案:

答案 0 :(得分:1)

好的,这适合我的需要; - )

                $('#text > span').each(function(intIndex){
                    var word;
                    if ($(this).hasClass('checked')) {
                        word = "<span>"+$(this).html()+"</span>";
                    } else {
                        word = $(this).html();
                        word = word.replace(/<\/?[^>]+(>|$)/g, "");
                    }
                    console.log(word);
                });

答案 1 :(得分:0)

这可以用正则表达式来完成,更多的是你的answer需要缓存整个html,这会很慢,试试下面的代码,这可能有帮助:)

$(function()
    $('#text > span').each(function() {
       if(!$(this).hasClass('XYZ')) { 
           $(this).remove();
       }
    });
});