2

テキストをエディターに貼り付けるときに、特定のタグのみを受け入れ、他のすべてのタグをストリップするにはどうすればよいですか? php の strip_tags 関数と同じように?

そのタグからすべてのスタイルを削除するにはどうすればよいですか?

入力は文字列です。

4

1 に答える 1

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);
    },
    ...
);
于 2015-09-15T01:41:39.927 に答える