ruby程序处理HTML编辑器内容只保留类似UBB的内容

  
    
# 将字符串进行UBB编码
def ubb_encode(source_str)
source_str.scan(/<img .*?>/)
do | v |
if v. match (/src=[ " ' ].*?[ "' ]/) != nil
source_str = source_str.sub(v, ' [img ' + v. match (/src=[ " ' ].*?[ "' ]/)[0] + ' /] ' )
end
end

source_str.scan(/<span[ ]*?.*?>/)
do | span |
style = span.
match (/style=[ " ']?.*?[ "' ]/).to_s
source_str = source_str.sub(span, ' [span ' + style + ' ] ' )
end
source_str = source_str.gsub(/background-image.*?\)/,
'' )
source_str = source_str.gsub(
' </span> ' , ' [/span] ' )
source_str = source_str.gsub(/<strong>
| <b>/, ' [b] ' ).gsub(/<\/strong> | <\/b>/, ' [/b] ' )
source_str = source_str.gsub(/<br[ ]*?.*?[\/]?>/,
' [br/] ' )
source_str = source_str.gsub(/<u>/,
' [u] ' ).gsub(/<\/u>/, ' [/u] ' )
source_str = source_str.gsub(/<em>
| <i>/, ' [i] ' ).gsub(/<\/em> | <\/i>/, ' [/i] ' )
source_str = source_str.gsub(/<p>/,
' [p] ' ).gsub(/<\/p>/, ' [/p] ' )
return source_str
end

# 将字符串进行UBB解码 不保留HTML代码
def ubb_decode(source_str)
source_str.gsub(/<script.*?>.*?<\/script>/,
'' ).gsub(/<.*?>/, '' ).gsub( ' [ ' , ' < ' ).gsub( ' ] ' , ' > ' ).gsub( ' &quot; ' , ' " ' )
end

你可能感兴趣的:(html)