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

转载于:https://www.cnblogs.com/heimirror/archive/2011/05/05/2038036.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值