2012-08-09 61 views
2

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

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

输入是一个字符串。

+1

+1完美的答案,这个问题是一个功能,可以在这里找到:http://stackoverflow.com/questions/4122451/tinymce-paste-as-plain-文本/ – Thariama 2012-08-10 12:18:54

回答

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); 
    }, 
    ... 
);