UBB类(C#)

using System;
using System.Web;
using System.Text;
using System.Text.RegularExpressions;

namespace Baolee.GeneralMethod
{
 /// <summary>
 /// UBB 的摘要说明。
 /// </summary>
 public class UBB
 {
  /// <summary>
  /// 构造函数
  /// </summary>
  public UBB()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
  }
  /// <summary>
  /// 完成具体的Replace工作
  /// </summary>
  /// <param name="pattern">源模板</param>
  /// <param name="str">源字串</param>
  /// <param name="tagstr">目标模板</param>
  /// <returns>被目标模板格式化过的字串</returns>
  private string CheckExp(string pattern, string str, string tagstr)
  {
   return Regex.Replace(str, pattern, tagstr, RegexOptions.IgnoreCase);
  }
  /// <summary>
  /// 将UBB代码转换成指定的HTML形式 下面是UBB的使用示例:UBB ubb = new UBB();string descStr = ubb.ReTheStr(sourStr);
  /// </summary>
  /// <param name="str">源字串</param>
  /// <returns></returns>
  public string ReTheStr(string str)
  {
   if (str.Trim() == null)
   {
    return "";
   }
   string pattern = @"/<";
   str = this.CheckExp(pattern, str, "&lt");
   pattern = @"/>";
   str = this.CheckExp(pattern, str, "&gt");
   pattern = @"/n";
   str = this.CheckExp(pattern, str, "<p>");
   pattern = @"/r";
   str = this.CheckExp(pattern, str, " ");
   pattern = @"/[img/](http://([/w-]+/.)+[/w-]+(/[/w- ./?%&=]*)/.(jpg|gif)?)/[//img/]";
   string tagstr = "<img src='$1' border=0>";
   str = this.CheckExp(pattern, str, tagstr);
   pattern = @"/[zip/]((ftp|http)://([/w-]+/.)+[/w-]+(/[/w- ./?%&=]*)(/.zip|rar)?)/[//zip/]";
   str = this.CheckExp(pattern, str, " <a href='$1' target=_blank>点击下载此文件</a> ");
   pattern = @"/[flash/](http://([/w-]+/.)+[/w-]+(/[/w- ./?%&=]*)(/.swf)?)/[//flash/]";
   str = this.CheckExp(pattern, str, "<br><object classid=/"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000/" codebase=/"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0/" width=/"550/" height=/"400/"><param name=movie value=/"$1/"> <param name=quality value=high> <embed src=/"$1/" quality=high pluginspage=/"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash/" type=/"application/x-shockwave-flash/" width=/"550/" height=/"400/"></embed></object><br><a href=/"$1/" target='blank'>开新窗欣赏flash动画</a>");
   pattern = @"/[flash=(http://([/w-]+/.)+[/w-]+(/[/w- ./?%&=]*)(/.swf)?),(/d{2,3}),(/d{2,3})/](.+)/[//flash/]";
   str = this.CheckExp(pattern, str, "<br><object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0' width='$5' height='$6'><param name=movie value='$1'> <param name=quality value=high> <embed src='$1' quality=high pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width='$5' height='$6'></embed></object><br><a href='$1' target='blank'>$7</a>");
   pattern = @"/[url/]((http|ftp|https)://([/w-]+/.)+[/w-]+([/w- ./?~%&=]*))/[//url/]";
   str = this.CheckExp(pattern, str, " <a href='$1' target=_blank>$1</a> ");
   pattern = @"/[url=((http|ftp|https)://([/w-]+/.)+[/w-]+([/w-./?~%&=]*))/](.+)/[//url/]";
   str = this.CheckExp(pattern, str, " <a href='$1' target=_blank>$5</a> ");
   pattern = @"((http|ftp|https)://([/w-]+/.)+[/w-]+([/w-./?%&=]*))(/s)+";
   str = this.CheckExp(pattern, str, " <a href='$1' target=_blank>$1</a> ");
   pattern = @"((http|ftp|https)://([/w-]+/.)+[/w-]+)(/s)+";
   str = this.CheckExp(pattern, str, " <a href='$1' target=_blank>$1</a> ");
   pattern = @"(/[color=#)([0-F]{6})/](.+?)/[//color/]";
   str = this.CheckExp(pattern, str, "<font color='$2'>$3</font>");
   pattern = @"(/[size=)([0-9]{1})/](.+?)(/[//size/])";
   str = this.CheckExp(pattern, str, "<font size='$2'>$3</font>");
   pattern = @"(/[font=)(.+?)/](.+)(/[//font/])";
   str = this.CheckExp(pattern, str, "<font face='$2'>$3</font>");
   pattern = @"(/[b/])(.+?)(/[//b/])";
   str = this.CheckExp(pattern, str, "<b>$2</b>");
   pattern = @"(/[u/])(.+?)(/[//u/])";
   str = this.CheckExp(pattern, str, "<u>$2</u>");
   pattern = @"(/[li/])(.+)(/[//li/])";
   str = this.CheckExp(pattern, str, "<li>$2</li>");
   pattern = @"(/[QUOTE/])(.+)(/[//QUOTE/])";
   str = this.CheckExp(pattern, str, "<BLOCKQUOTE>/u5f15/u7528:<HR SIZE=1><B>$2</B><HR SIZE=1></BLOCKQUOTE>");
   pattern = @"(/[email=)(/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*)/](.+)(/[//email/])";
   str = this.CheckExp(pattern, str, " <a href='mailto:$2'>$2</a> ");
   pattern = @"(/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*)";
   str = this.CheckExp(pattern, str, "<a href=mailto:$1>$1</a>");
   pattern = @"(/[center/])(.+?)(/[//center/])";
   str = this.CheckExp(pattern, str, "<center>$2</center>");
   pattern = @"/[align=(left|right|center)?/](.+?)/[//align/]";
   str = this.CheckExp(pattern, str, "<div align=$1>$2</div>");
   pattern = @"/[fly/](.+?)/[//fly/]";
   str = this.CheckExp(pattern, str, "<marquee width=90% behavior=alternate scrollamount=3>$1</marquee>");
   pattern = @"/[move/](.+?)/[//move/]";
   str = this.CheckExp(pattern, str, "<marquee scrollamount=3>$1</marquee>");
   pattern = @"/[glow=([1-4]?),(#[0-F]{6}),([1-4]?)/](.+?)/[//glow/]";
   str = this.CheckExp(pattern, str, "<table width=$1 style='filter:glow(color=$2, strength=$3)'>$4</table>");
   pattern = @"/[shadow=([1-4]?),(#[0-F]{6}),([1-4]?)/](.+?)/[//shadow/]";
   str = this.CheckExp(pattern, str, "<table width=$1 style='filter:shadow(color=$2, strength=$3)'>$4</table>");
   pattern = "fuck";
   str = this.CheckExp(pattern, str, "***");
   pattern = @"(/[AUTO/])(.+?)(/[//AUTO/])";
   str = this.CheckExp(pattern, str, "<BLOCKQUOTE>系统消息:<HR SIZE=1><B>$2</B><HR SIZE=1></BLOCKQUOTE>");
   pattern = @"(/[DENY/])(.+?)(/[//DENY/])";
   str = this.CheckExp(pattern, str, "<BLOCKQUOTE><b>拒绝通过审核的理由:<b><HR SIZE=1>$2<HR SIZE=1></BLOCKQUOTE>");
   pattern = @"/[IMG/](upload///d*/.(jpg|gif|jpeg|bmp)?)/[//IMG/]";
   str = this.CheckExp(pattern, str, "<br><img src='$1' border=0>");
   pattern = @"/[ZIP/](upload///d*(/.ZIP)?)/[//ZIP/]";
   str = this.CheckExp(pattern, str, "<br><img src='img/zip.gif' border=0><a href='$1' >压缩文件,点击下载</a>");
   pattern = @"/[RAR/](upload///d*(/.RAR)?)/[//RAR/]";
   str = this.CheckExp(pattern, str, "<br><img src='img/rar.gif' border=0><a href='$1' >压缩文件,点击下载</a>");
   pattern = @"/[UPLOAD/](upload///d*/./w{0,4})/[//UPLOAD/]";
   str = this.CheckExp(pattern, str, "<br><img src='img/upload.gif' border=0><a href='$1' >上传文件,请下载到本地打开</a>");
   return str;
  }

 

 


 

 

 }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rjzou2006

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值