首页 > 编程 > Regex > 正文

简单的Html转换UBB的程序

2020-03-16 21:23:48
字体:
来源:转载
供稿:网友
这个功能主要是让 UBB 转贴的时候方便点.

1.自动识别图片,超链接,字体颜色,和字体加粗,倾斜,下划线的HTML代码,并且转换为UBB代码.
2.兼容 IE 和 Mozilla多种浏览器
  1. <html> 
  2. <head> 
  3. <title>Html转换程序</title> 
  4. <SCRIPT language="JavaScript1.2"> 
  5. function HtmlToUBB(str) { 
  6. strstr = str.replace(//r/g,""); 
  7. strstr = str.replace(/on(load|click|dbclick|mouseover|mousedown|mouseup)="[^"]+"/ig,""); 
  8. strstr = str.replace(/<script[^>]*?>([/w/W]*?)<//script>/ig,""); 
  9. strstr = str.replace(/<a[^>]+href="([^"]+)"[^>]*>(.*?)<//a>/ig,"/n[url=$1]$2[/url]/n"); 
  10. strstr = str.replace(/<font[^>]+color=([^ >]+)[^>]*>(.*?)<//font>/ig,"/n[color=$1]$2[/color]/n"); 
  11. strstr = str.replace(/<img[^>]+src="([^"]+)"[^>]*>/ig,"/n[img]$1[/img]/n"); 
  12. strstr = str.replace(/<([//]?)b>/ig,"[$1b]"); 
  13. strstr = str.replace(/<([//]?)strong>/ig,"[$1b]"); 
  14. strstr = str.replace(/<([//]?)u>/ig,"[$1u]"); 
  15. strstr = str.replace(/<([//]?)i>/ig,"[$1i]"); 
  16. strstr = str.replace(/ /g," "); 
  17. strstr = str.replace(/&/g,"&"); 
  18. strstr = str.replace(/"/g,"/""); 
  19. strstr = str.replace(/</g,"<"); 
  20. strstr = str.replace(/>/g,">"); 
  21. strstr = str.replace(/<br>/ig,"/n"); 
  22. strstr = str.replace(/<[^>]*?>/g,""); 
  23. strstr = str.replace(//[url=([^/]]+)/]/n(/[img/]/1/[//img/])/n/[//url/]/g,"$2"); 
  24. strstr = str.replace(//n+/g,"/n"); 
  25. return str; 
  26.  
  27. function trans(){ 
  28. var str = ""
  29. str = document.getElementById('edit').contentWindow.document.body.innerHTML; 
  30. if (str.length == 0) { 
  31. alert("无转换内容!请使用 Ctrl+V 把内容复制到下面的编辑框内"); 
  32. document.getElementById('ReCode').value=HtmlToUBB(str); 
  33.  
  34. function clearCode(){ 
  35. document.getElementById('ReCode').value=""
  36.  
  37. function Start() { 
  38.   document.getElementById('edit').contentWindow.document.designMode = "on"
  39.   try { 
  40.     document.getElementById('edit').contentWindow.document.execCommand("undo", false, null); 
  41.   }  catch (e) { 
  42.     alert("你的Mozilla浏览器不支持在线RichEditor"); 
  43.   } 
  44.  
  45. function ViewSource(Source){ 
  46.   var Html; 
  47.   if (Source){ 
  48. document.getElementById('sCode').value = document.getElementById('edit').contentWindow.document.body.innerHTML; 
  49. document.getElementById('edit').style.display="none"
  50. document.getElementById('sCode').style.display=""
  51. document.getElementById('tip').innerText="修改粘贴后的网页源代码 >>"
  52. document.getElementById('tranButton').disabled="disabled" 
  53.   } 
  54.   else{ 
  55. document.getElementById('edit').contentWindow.document.body.innerHTML = document.getElementById('sCode').value; 
  56.    document.getElementById('edit').style.display=""
  57. document.getElementById('sCode').style.display="none"
  58.     document.getElementById('edit').contentWindow.document.designMode = "on"
  59.   document.getElementById('tip').innerText="请使用 Ctrl+V 把内容复制到这里 >>"
  60. document.getElementById('tranButton').disabled="" 
  61. </SCRIPT> 
  62. <style> 
  63. body{background:#688ABD;margin:2px;} 
  64. label{color:#fff;} 
  65. th{font-size:14px;font-family:verdana,宋体;font-weight:bold;color:fc6;text-align:left} 
  66. #sCode{width:400;height:150px;border:1px solid #1F2F47;margin-top:0px !important;margin-top:-1px;margin-bottom:0px !important;margin-bottom:-1px;} 
  67. #ReCode{width:400;height:150px;border:1px solid #1F2F47;font-size:12px;} 
  68. #edit{width:398;height:148px;border:1px solid #1F2F47;background:#fff;font-size:12px} 
  69. .input{ 
  70. border-top:1px solid #fff; 
  71. border-right:1px solid #003; 
  72. border-bottom:1px solid #003; 
  73. border-left:1px solid #fff; 
  74. background:#F4F7FB; 
  75. .tip{ 
  76. color:#ffc; 
  77. font-weight:bold; 
  78. font-size:12px; 
  79. font-family:宋体; 
  80. </style> 
  81. </head> 
  82. <body onload="Start()" style=""> 
  83. <table border="0" align="center"> 
  84. <tr> 
  85. <th style="">Html转换UBB程序</th> 
  86. </tr> 
  87. <tr> 
  88. <td style="font-size:12px;"> 
  89. <label for="Source"><input type="checkbox" id="Source" onclick="ViewSource(this.checked)">查看源代码 </label> 
  90.          <input id="tranButton" type="button" value="转 换" onclick="trans()" class="input"> 
  91.          <input type="button" value="清 除" onclick="clearCode()" class="input"></td> 
  92. </tr> 
  93. <tr> 
  94. <td class="tip"> 
  95.          <span id="tip">请使用 Ctrl+V 把内容复制到这里 >></span></td> 
  96. </tr> 
  97. <tr> 
  98. <td> 
  99.          <textarea id="sCode" style="display:none"></textarea> 
  100.          <iframe id="edit"src="about:blank" border="0" frameborder="0"></iframe> 
  101. </td> 
  102. </tr> 
  103. <tr> 
  104. <td class="tip"> 
  105.          转换输出代码 >></td> 
  106. </tr> 
  107. <tr> 
  108. <td> 
  109.          <textarea id="ReCode" readonly="readonly"></textarea> 
  110.         </td> 
  111. </tr> 
  112. </table> 
  113. </body> 
  114. </html> 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表