TinyMCE strip_tags函数就像php一样?

时间:2012-08-09 18:16:24

标签: tinymce

在将文本粘贴到编辑器时,如何才能接受某些标签和strip_tags所有其他标签?就像php的strip_tags函数一样?

如何从该标签中删除所有样式?

输入是一个字符串。

1 个答案:

答案 0 :(得分:0)

我有一个这个功能

var strip_tags = function(str,tags,attrs){
    var reg2 = /\s*(\w+)=\"[^\"]+\"/gm;
    var reg = /<\s*(\w+).*?>/gm;
    str = str.replace(reg,function(match, i) {
        var r_ = match;
        var reg_ = /<\s*(\w+).*?>/gm;
        var m_ = reg_.exec(match);
        if(m_!=null){
            if(tags.indexOf(m_[1])>=0){
                r_ = match.replace(reg2,function(match_, i) {
                    var reg2_ = /\s*(\w+)=\"[^\"]+\"/gm;
                    var m = reg2_.exec(match_);
                    if(m!=null){
                        if(attrs.indexOf(m[1])>=0){
                            return match_;
                        }
                    }
                    return '';
                });
            }else{
                r_ = '';
            }
        }else{
            r_ = '';
        }
        return r_;
    });
    var reg3 = /<\/\s*(\w+).*?>/gm;
    str = str.replace(reg3,function(match, i) {
        var r_ = match;
        var reg_ = /<\/\s*(\w+).*?>/gm;
        var m_ = reg_.exec(match);
        if(m_!=null){
            if(tags.indexOf(m_[1])>=0){
                return match;
            }
        }
        return '';
    });
    return str;
};
tinyMCE.init(
    ...
    plugins: "paste...
    paste_preprocess : function(pl, o) {
        var allowed_tags = ['ul','li','b','p','table','tr','td'];
        var allowed_attributes = ['href','colspan','rowspan'];
        o.content = strip_tags(o.content,allowed_tags,allowed_attributes);
    },
    ...
);