简单的Html转换UBB的程序

时间:2015-08-14

这个功能主要是让 UBB 转贴的时候方便点. 

1.自动识别图片,超链接,字体颜色,和字体加粗,倾斜,下划线的HTML代码,并且转换为UBB代码.
2.兼容 IE 和 Mozilla多种浏览器
<html> 
<head> 
<title>Html转换程序</title> 
<SCRIPT language="JavaScript1.2"> 
function HtmlToUBB(str) { 
str = str.replace(/r/g,""); 
str = str.replace(/on(load|click|dbclick|mouseover|mousedown|mouseup)="[^"]+"/ig,""); 
str = str.replace(/<script[^>]*?>([wW]*?)</script>/ig,""); 
str = str.replace(/<a[^>]+href="([^"]+)"[^>]*>(.*?)</a>/ig,"n[url=$1]$2[/url]n"); 
str = str.replace(/<font[^>]+color=([^ >]+)[^>]*>(.*?)</font>/ig,"n[color=$1]$2[/color]n"); 
str = str.replace(/<img[^>]+src="([^"]+)"[^>]*>/ig,"n[img]$1[/img]n"); 
str = str.replace(/<([/]?)b>/ig,"[$1b]"); 
str = str.replace(/<([/]?)strong>/ig,"[$1b]"); 
str = str.replace(/<([/]?)u>/ig,"[$1u]"); 
str = str.replace(/<([/]?)i>/ig,"[$1i]"); 
str = str.replace(/ /g," "); 
str = str.replace(/&/g,"&"); 
str = str.replace(/"/g,"""); 
str = str.replace(/</g,"<"); 
str = str.replace(/>/g,">"); 
str = str.replace(/<br>/ig,"n"); 
str = str.replace(/<[^>]*?>/g,""); 
str = str.replace(/[url=([^]]+)]n([img]1[/img])n[/url]/g,"$2"); 
str = str.replace(/n+/g,"n"); 
return str; 
} 

function trans(){ 
var str = ""; 
str = document.getElementById('edit').contentWindow.document.body.innerHTML; 
if (str.length == 0) { 
alert("无转换内容!请使用 Ctrl+V 把内容复制到下面的编辑框内"); 
} 
document.getElementById('ReCode').value=HtmlToUBB(str); 
} 

function clearCode(){ 
document.getElementById('ReCode').value=""; 
} 

function Start() { 
document.getElementById('edit').contentWindow.document.designMode = "on"; 
try { 
document.getElementById('edit').contentWindow.document.execCommand("undo", false, null); 
} catch (e) { 
alert("你的Mozilla浏览器不支持在线RichEditor"); 
} 
} 

function ViewSource(Source){ 
var Html; 
if (Source){ 
document.getElementById('sCode').value = document.getElementById('edit').contentWindow.document.body.innerHTML; 
document.getElementById('edit').style.display="none"; 
document.getElementById('sCode').style.display=""; 
document.getElementById('tip').innerText="修改粘贴后的网页源代码 >>"; 
document.getElementById('tranButton').disabled="disabled" 
} 
else{ 
document.getElementById('edit').contentWindow.document.body.innerHTML = document.getElementById('sCode').value; 
document.getElementById('edit').style.display=""; 
document.getElementById('sCode').style.display="none"; 
document.getElementById('edit').contentWindow.document.designMode = "on"; 
document.getElementById('tip').innerText="请使用 Ctrl+V 把内容复制到这里 >>"; 
document.getElementById('tranButton').disabled="" 
} 
} 
</SCRIPT> 
<style> 
body{background:#688ABD;margin:2px;} 
label{color:#fff;} 
th{font-size:14px;font-family:verdana,宋体;font-weight:bold;color:fc6;text-align:left} 
#sCode{width:400;height:150px;border:1px solid #1F2F47;margin-top:0px !important;margin-top:-1px;margin-bottom:0px !important;margin-bottom:-1px;} 
#ReCode{width:400;height:150px;border:1px solid #1F2F47;font-size:12px;} 
#edit{width:398;height:148px;border:1px solid #1F2F47;background:#fff;font-size:12px} 
.input{ 
border-top:1px solid #fff; 
border-right:1px solid #003; 
border-bottom:1px solid #003; 
border-left:1px solid #fff; 
background:#F4F7FB; 
} 
.tip{ 
color:#ffc; 
font-weight:bold; 
font-size:12px; 
font-family:宋体; 
} 
</style> 
</head> 
<body onload="Start()" style=""> 
<table border="0" align="center"> 
<tr> 
<th style="">Html转换UBB程序</th> 
</tr> 
<tr> 
<td style="font-size:12px;"> 
<label for="Source"><input type="checkbox" id="Source" onclick="ViewSource(this.checked)">查看源代码 </label> 
<input id="tranButton" type="button" value="转 换" onclick="trans()" class="input"> 
<input type="button" value="清 除" onclick="clearCode()" class="input"></td> 
</tr> 
<tr> 
<td class="tip"> 
<span id="tip">请使用 Ctrl+V 把内容复制到这里 >></span></td> 
</tr> 
<tr> 
<td> 
<textarea id="sCode" style="display:none"></textarea> 
<iframe id="edit"src="about:blank" border="0" frameborder="0"></iframe> 
</td> 
</tr> 
<tr> 
<td class="tip"> 
转换输出代码 >></td> 
</tr> 
<tr> 
<td> 
<textarea id="ReCode" readonly="readonly"></textarea> 
</td> 
</tr> 
</table> 
</body> 
</html>

上一条:用正则表达式过滤html代码 下一条:HTML5中语义化 b 和 i 标签

相关文章

最新文章