Html转UBB的JS版本【寻求更好的方案】
2013-11-05 21:12
495 查看
Html转UBB的JS版本【寻求更好的方案】
简介:Html转UBB的JS版本【寻求更好的方案】
转换部分,存在BUG。。。
------------------------------------------------------------------------------------------------------------------------------------------------------
Html代码:
------------------------------------------------------------------------------------------------------------------------------------------------------
JavaScript脚本:
简介:Html转UBB的JS版本【寻求更好的方案】
转换部分,存在BUG。。。
------------------------------------------------------------------------------------------------------------------------------------------------------
Html代码:
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>HtmlUbbTranslation</title> <script src="js/Html_Ubb.js" type="text/javascript"></script> </head> <body> <form id="form1" runat="server"> <div style="padding: 5px; text-align: center;"> <div> <div> 请将 <strong>Html</strong> 源代码拷贝到下面表单中: </div> <div> <textarea id="Hsource" cols="15" rows="15" style="width: 700px;" onkeyup="htmltoubb()" onfocus="htmltoubb()"></textarea> </div> <span>下面表单中是相应的 <strong>UBB</strong> 代码: </span> <br> <span> <textarea id="Uresult" cols="15" rows="15" style="width: 700px;"></textarea> </span> </div> </div> </form> </body> </html>
------------------------------------------------------------------------------------------------------------------------------------------------------
JavaScript脚本:
function htmltoubb(){ str = pattern(document.getElementById("Hsource").value); document.getElementById("Uresult").value=str; } function pattern(str){ //str = str.replace(/(\r\n|\n|\r)/ig, ''); str = str.replace(/<br[^>]*>/ig,'\n'); 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(/<img[^>]*smile=\"(\d+)\"[^>]*>/ig,'[s:$1]'); str = str.replace(/<img[^>]*src=[\'\"\s]*([^\s\'\"]+)[^>]*>/ig,''); str = str.replace(/<a[^>]*href=[\'\"\s]*([^\s\'\"]*)[^>]*>(.+?)<\/a>/ig,''+'$2'+''); //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(/</ig, '<'); str = str.replace(/>/ig, '>'); return str; } function up(str){ str = str.replace(/</ig,'<'); str = str.replace(/>/ig,'>'); str = str.replace(/\n/ig,'<br />'); str = str.replace(/\[code\](.+?)\[\/code\]/ig, function($1, $2) {return phpcode($2);}); str = str.replace(/\[hr\]/ig,'<hr />'); str = str.replace(/\[\/(size|color|font|backcolor)\]/ig,'</font>'); str = str.replace(/\[(sub|sup|u|i|strike|b|blockquote|li)\]/ig,'<$1>'); str = str.replace(/\[\/(sub|sup|u|i|strike|b|blockquote|li)\]/ig,'</$1>'); str = str.replace(/\[\/align\]/ig,'</p>'); str = str.replace(/\[(\/)?h([1-6])\]/ig,'<$1h$2>'); str = str.replace(/\[align=(left|center|right|justify)\]/ig,'<p align="$1">'); str = str.replace(/\[size=(\d+?)\]/ig,'<font size="$1">'); str = str.replace(/\[color=([^\[\<]+?)\]/ig, '<font color="$1">'); str = str.replace(/\[backcolor=([^\[\<]+?)\]/ig, '<font style="background-color:$1">'); str = str.replace(/\[font=([^\[\<]+?)\]/ig, '<font face="$1">'); str = str.replace(/\[list=(a|A|1)\](.+?)\[\/list\]/ig,'<ol type="$1">$2</ol>'); str = str.replace(/\[(\/)?list\]/ig,'<$1ul>'); str = str.replace(/\[s:(\d+)\]/ig,function($1,$2){ return smilepath($2);}); str = str.replace(/\[img\]([^\[]*)\[\/img\]/ig,'<img src="$1" border="0" />'); str = str.replace(/\[url=([^\]]+)\]([^\[]+)\[\/url\]/ig, '<a href="$1">'+'$2'+'</a>'); str = str.replace(/\[url\]([^\[]+)\[\/url\]/ig, '<a href="$1">'+'$1'+'</a>'); return str; } function ubbtohtml(){ str = up(document.getElementById("Usource").value); document.getElementById("Hresult").value=str; }
相关文章推荐
- JSTL 核心标签库 使用
- 原生JavaScript实现弹球游戏
- extjs的button控件fireEvent('click')无效问题
- JSON.parse JSON.stringify
- js查看浏览器类型和版本
- jstl
- javascript 库
- JS浏览器关闭时清空cookie
- Ext js框架模拟Windows桌面菜单管理模板
- jscript的常用文件操作
- jscript的常用文件操作
- BAE json 返回乱码。
- 一切皆为 JavaScript
- 屏蔽js/jq中的脚本错误的方法
- js事件在不同浏览器之间的差异
- js自动生成颜色表
- 【D3.js数据可视化系列教程】(二十九)--折叠树
- JS 睡眠函数用法
- javascript类继承的模拟实现
- javascript 性能分析:dom 编程