UBB转换函数

 
  1. public class UBB
  2. {
  3.     #region 公共静态方法
  4.     /// <summary>
  5.     /// UBB代码处理函数
  6.     /// </summary>
  7.     /// <param name="_Str">输入字符串</param>
  8.     /// <returns>输出字符串</returns>
  9.     static public string u(string _Str)
  10.     {
  11.         Regex r;
  12.         Match m;
  13.         #region 处理符号
  14.          处理空格
  15.         //_Str = _Str.Replace(" ", " ");
  16.          处理单引号
  17.         //_Str = _Str.Replace("'", "’");
  18.          处理双引号
  19.         _Str = _Str.Replace("/"", """);
  20.          html标记符
  21.         //_Str = _Str.Replace("<", "<");
  22.         //_Str = _Str.Replace(">", ">");
  23.         #endregion
  24.         #region 处理换行
  25.         //r = new Regex(@"(/r/n(( )| )+)(?<正文> +)", RegexOptions.IgnoreCase);
  26.         //for (m = r.Match(_Str); m.Success; m = m.NextMatch())
  27.         //{
  28.         //    _Str = _Str.Replace(m.Groups[0].ToString(), "<br />" + m.Groups["正文"].ToString());
  29.         //}
  30.         //_Str = _Str.Replace("/r/n", "<br />");
  31.         #endregion
  32.         #region 处[url=xxx][/url]标记
  33.         r = new Regex(@"(/[url=(.[^/[]*)/])(.*?)(/[//url/])", RegexOptions.IgnoreCase);
  34.         for (m = r.Match(_Str); m.Success; m = m.NextMatch())
  35.         {
  36.             _Str = _Str.Replace(m.Groups[0].ToString(), "<A href=/"" + m.Groups[2].ToString() + "/" target=/"_blank/">" + m.Groups[3].ToString() + "</A>");
  37.         }
  38.         #endregion
  39.         #region url [ = ]
  40.         r = new Regex(@"[^/]/[=](http://[A-Za-z0-9/./=/?%/-&_~`@':+!]+)", RegexOptions.IgnoreCase);
  41.         for (m = r.Match(_Str); m.Success; m = m.NextMatch())
  42.         {
  43.             _Str = _Str.Replace(m.Groups[1].ToString(), "<a href=" + m.Groups[1].ToString() + " target=_blank>" + m.Groups[1].ToString() + "</a>");
  44.         }
  45.         #endregion
  46.         #region 处[/email]标记
  47.         r = new Regex(@"/[email/](.[^/[]*)/[//email/]", RegexOptions.IgnoreCase);
  48.         for (m = r.Match(_Str); m.Success; m = m.NextMatch())
  49.         {
  50.             _Str = _Str.Replace(m.Groups[0].ToString(), "<A href=/"mailto:" + m.Groups[1].ToString() + "/" target=/"_blank/">" + m.Groups[1].ToString() + "</A>");
  51.         }
  52.         #endregion
  53.         #region 处[IMG][/IMG]标记
  54.         r = new Regex(@"/[img/](http|https|ftp):(.[^/[]*)/[//img/]", RegexOptions.IgnoreCase);
  55.         for (m = r.Match(_Str); m.Success; m = m.NextMatch())
  56.         {
  57.             _Str = _Str.Replace(m.Groups[0].ToString(),
  58.                 "<br /><center><a οnfοcus=this.blur() href=" + m.Groups[1].ToString() + "://" + m.Groups[2].ToString() +
  59.                 " target=_blank><IMG SRC=" + m.Groups[1].ToString() + "://" + m.Groups[2].ToString() +
  60.                 " border=0 alt=按此在新窗口浏览图片 οnlοad=/"javascript:if(this.width>500) this.width=500/"></a></center><br />");
  61.         }
  62.         #endregion
  63.         #region 处[em]标记
  64.         r = new Regex(@"(/[em(.[^/[]*)/])", RegexOptions.IgnoreCase);
  65.         for (m = r.Match(_Str); m.Success; m = m.NextMatch())
  66.         {
  67.             _Str = _Str.Replace(m.Groups[0].ToString(), "<img src=pic/em" + m.Groups[1].ToString() + ".gif border=0 align=middle>");
  68.         }
  69.         #endregion
  70.         #region 处[flash=x,x][/flash]标记
  71.         r = new Regex(@"(/[falsh=*([0-9]*),*([0-9]*)/])(.*?)(/[//falsh/])", RegexOptions.IgnoreCase);
  72.         for (m = r.Match(_Str); m.Success; m = m.NextMatch())
  73.         {
  74.             _Str = _Str.Replace(m.Groups[0].ToString(),
  75.              "<br /><center><a href=" + m.Groups[3].ToString() +
  76.              " TARGET=_blank>[全屏欣赏]</a><br><br><OBJECT codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=" + m.Groups[1].ToString() +
  77.              " height=" + m.Groups[2].ToString() + "><PARAM NAME=movie VALUE=" + m.Groups[3].ToString() +
  78.              "><PARAM NAME=quality VALUE=high><param name=menu value=false><embed src=" + m.Groups[3].ToString() +
  79.              " quality=high menu=false pluginspage=http://www.macromedia.com/go/getflashplayer type=application/x-shockwave-flash width=" + m.Groups[1].ToString() +
  80.              " height=" + m.Groups[2].ToString() + ">" + m.Groups[3].ToString() + "</embed></OBJECT></center><br />");
  81.         }
  82.         #endregion
  83.         #region 处[swf=x,x][/swf]标记
  84.         r = new Regex(@"(/[swf=*([0-9]*),*([0-9]*)/])(.*?)(/[//swf/])", RegexOptions.IgnoreCase);
  85.         for (m = r.Match(_Str); m.Success; m = m.NextMatch())
  86.         {
  87.             _Str = _Str.Replace(m.Groups[0].ToString(),
  88.              "<center><a href=" + m.Groups[4].ToString() +
  89.              " TARGET=_blank>[全屏欣赏]</a><br /><OBJECT codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=" + m.Groups[2].ToString() +
  90.              " height=" + m.Groups[3].ToString() + "><PARAM NAME=movie VALUE=" + m.Groups[4].ToString() +
  91.              "><PARAM NAME=quality VALUE=high><param name=menu value=false><embed src=" + m.Groups[4].ToString() +
  92.              " quality=high menu=false pluginspage=http://www.macromedia.com/go/getflashplayer type=application/x-shockwave-flash width=" + m.Groups[2].ToString() +
  93.              " height=" + m.Groups[3].ToString() + ">" + m.Groups[4].ToString() + "</embed></OBJECT></center>");
  94.         }
  95.         #endregion
  96.         #region 处[dir=x][/dir]标记
  97.         r = new Regex(@"(/[dir=)(/d*?),(/d*?)/]([ /t]*?)(/[//dir/])", RegexOptions.IgnoreCase);
  98.         for (m = r.Match(_Str); m.Success; m = m.NextMatch())
  99.         {
  100.             _Str = _Str.Replace(m.Groups[0].ToString(),
  101.              "<object classid=clsid:166B1BCA-3F9C-11CF-8075-444553540000 codebase=http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=7,0,2,0 width=" + m.Groups[2].ToString() + " height=" + m.Groups[3].ToString() + "><param name=src value=" + m.Groups[4].ToString() + "><embed src=" + m.Groups[4].ToString() + " pluginspage=http://www.macromedia.com/shockwave/download/ width=" + m.Groups[2].ToString() + " height=" + m.Groups[3].ToString() + "></embed></object>");
  102.         }
  103.         #endregion
  104.         #region 处[rm=x][/rm]标记
  105.         r = new Regex(@"/[rm=*([0-9]*),*([0-9]*)/](.[^/[]*)/[//rm]", RegexOptions.IgnoreCase);
  106.         for (m = r.Match(_Str); m.Success; m = m.NextMatch())
  107.         {
  108.             _Str = _Str.Replace(m.Groups[0].ToString(),
  109.              "<br /><OBJECT classid=clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA class=OBJECT id=RAOCX width=" + m.Groups[1].ToString() +
  110.              " height=" + m.Groups[2].ToString() + "><PARAM NAME=SRC VALUE=" + m.Groups[3].ToString() +
  111.              "><PARAM NAME=CONSOLE VALUE=Clip1><PARAM NAME=CONTROLS VALUE=imagewindow><PARAM NAME=AUTOSTART VALUE=true></OBJECT><br />" +
  112.              "<OBJECT classid=CLSID:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA height=32 id=video2 width=" + m.Groups[1].ToString() +
  113.              "><PARAM NAME=SRC VALUE=" + m.Groups[3].ToString() +
  114.              "><PARAM NAME=AUTOSTART VALUE=-1><PARAM NAME=CONTROLS VALUE=controlpanel><PARAM NAME=CONSOLE VALUE=Clip1></OBJECT><br />");
  115.         }
  116.         #endregion
  117.         #region 处[mp=x,x][/mp]标记
  118.         r = new Regex(@"/[mp=*([0-9]*),*([0-9]*)/](.[^/[]*)/[//mp]", RegexOptions.IgnoreCase);
  119.         for (m = r.Match(_Str); m.Success; m = m.NextMatch())
  120.         {
  121.             _Str = _Str.Replace(m.Groups[0].ToString(),
  122.              "<object align=middle classid=CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95 class=OBJECT id=MediaPlayer width=" + m.Groups[1].ToString() +
  123.              " height=" + m.Groups[2].ToString() + "><param name=ShowStatusBar value=-1><param name=Filename value=" + m.Groups[3].ToString() +
  124.              "><embed type=application/x-oleobject codebase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701 flename=mp src=" + m.Groups[3].ToString() +
  125.              " width=" + m.Groups[1].ToString() +
  126.              " height=" + m.Groups[2].ToString() + "></embed></object>");
  127.         }
  128.         #endregion
  129.         #region 处[qt=x][/qt]标记
  130.         r = new Regex(@"(/[qt=)(/d*?),(/d*?)/]([ /t]*?)(/[//qt/])", RegexOptions.IgnoreCase);
  131.         for (m = r.Match(_Str); m.Success; m = m.NextMatch())
  132.         {
  133.             _Str = _Str.Replace(m.Groups[0].ToString(),
  134.              "<embed src=" + m.Groups[4].ToString() + " width=" + m.Groups[2].ToString() + " height=" + m.Groups[3].ToString() + " autoplay=true loop=false controller=true playeveryframe=false cache=false scale=TOFIT bgcolor=#000000 kioskmode=false targetcache=false pluginspage=http://www.apple.com/quicktime/>");
  135.         }
  136.         #endregion
  137.         #region 处<div class="UBBPanel"><div class="UBBTitle"><img src="images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent"></div></div>标记
  138.         r = new Regex(@"(/[QUOTE/])([ /t]*?)(/[//QUOTE/])", RegexOptions.IgnoreCase);
  139.         for (m = r.Match(_Str); m.Success; m = m.NextMatch())
  140.         {
  141.             _Str = _Str.Replace(m.Groups[0].ToString(), "<table cellpadding=0 cellspacing=0 border=1 WIDTH=94% bordercolor=#000000 bgcolor=#F2F8FF align=center  style=FONT-SIZE: 9pt><tr><td  ><table width=100% cellpadding=5 cellspacing=1 border=0><TR><TD >" + m.Groups[2].ToString() + "</table></table><br>");
  142.         }
  143.         #endregion
  144.         #region 处[move][/move]标记
  145.         r = new Regex(@"(/[move/])([ /t]*?)(/[//move/])", RegexOptions.IgnoreCase);
  146.         for (m = r.Match(_Str); m.Success; m = m.NextMatch())
  147.         {
  148.             _Str = _Str.Replace(m.Groups[0].ToString(), "<MARQUEE scrollamount=3>" + m.Groups[2].ToString() + "</MARQUEE>");
  149.         }
  150.         #endregion
  151.         #region 处<marquee width="90%" behavior="alternate" scrollamount="3"></marquee>标记
  152.         r = new Regex(@"(/[FLY/])([ /t]*?)(/[//FLY/])", RegexOptions.IgnoreCase);
  153.         for (m = r.Match(_Str); m.Success; m = m.NextMatch())
  154.         {
  155.             _Str = _Str.Replace(m.Groups[0].ToString(), "<MARQUEE width=80% behavior=alternate scrollamount=3>" + m.Groups[2].ToString() + "</MARQUEE>");
  156.         }
  157.         #endregion
  158.         #region 处[image][/image]标记
  159.         //处[image][/image]标记
  160.         r = new Regex(@"(/[image/])([ /t]*?)(/[//image/])", RegexOptions.IgnoreCase);
  161.         for (m = r.Match(_Str); m.Success; m = m.NextMatch())
  162.         {
  163.             _Str = _Str.Replace(m.Groups[0].ToString(),
  164.              "<center><img src=/"" + m.Groups[2].ToString() + "/" border=0 align=middle></center><br>");
  165.         }
  166.         #endregion
  167.         return _Str;
  168.     }
  169.     #endregion
  170. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值