在html标签转换成Ubb标签的时候遇到了一个问题,如下语句
<font size="5" color="#fff100">求教高手谢谢了非常感谢很急</font>
我用的是这个转换方法
function htmltoubb(str) { str = str.replace(/(\r\n|\n|\r)/ig, ''); str = str.replace(/<br[^>]*>/ig, '[rn]'); str = str.replace(/<p[^>\/]*\/>/ig, '\n'); //str = str.replace(/\[code\](.+?)\[\/code\]/ig, function($1, $2) {return phpcode($2);}); str = str.replace(/\son[\w]{3,16}\s?=\s*([\'\"]).+?\1/ig, ''); str = str.replace(/<hr[^>]*>/ig, '[hr]'); str = str.replace(/<(sub|sup|u|strike|b|i|pre)>/ig, '[$1]'); str = str.replace(/<\/(sub|sup|u|strike|b|i|pre)>/ig, '[/$1]'); str = str.replace(/<(\/)?strong>/ig, '[$1b]'); str = str.replace(/<(\/)?em>/ig, '[$1i]'); str = str.replace(/<(\/)?blockquote([^>]*)>/ig, '[$1blockquote]'); str = str.replace(/<font[^>]+color=([^ >]+)[^>]*>(.*?)<\/font>/ig, "\n[color=$1]$2[/color]\n"); str = str.replace(/<font[^>]+size=([^ >]+)[^>]*>(.*?)<\/font>/ig, "\n[size=$1]$2[/size]\n"); str = str.replace(/<a[^>]*href=[\'\"\s]*([^\s\'\"]*)[^>]*>(.+?)<\/a>/ig, '[url=$1]' + '$2' + '[/url]'); str = str.replace(/<h([1-6]+)([^>]*)>(.*?)<\/h\1>/ig,function($1,$2,$3,$4){return h($3,$4,$2);}); str = str.replace(/<[^>]*?>/ig, ''); str = str.replace(/&/ig, '&'); str = str.replace(/<font[^>]+size=([^>]+)[^>]*>(.*?)<\/font>/ig, "\n[size=$1]$2[/size]\n"); str = str.replace(/</ig, '<'); str = str.replace(/>/ig, '>'); return str; }
经过转换之后是这个样子的
[color="#fff100"]求教高手谢谢了非常感谢很急[/color]
非常着急,谢谢高手相助,谢谢了
str = str.replace(/<font[^>]+color=([^ >]+)[^>]*>(.*?)<\/font>/ig, "\n[color=$1]$2[/color]\n");
匹配的应该是这句吧!
不熟悉,帮顶下。
谢谢了