当前位置:  编程技术>.net/c#/asp.net

asp.net(c#) ubb处理类

    来源: 互联网  发布时间:2014-08-30

    本文导语:  asp.net下对于编辑器中的ubb进行替换处理的代码。   代码如下: using System; using System.Web; using System.Web.UI; using System.Text.RegularExpressions; namespace STH.function { /// /// UbbCode 的摘要说明。 /// public class UbbCode { Root theroot=new Root()...

asp.net下对于编辑器中的ubb进行替换处理的代码。
 

代码如下:

using System;
using System.Web;
using System.Web.UI;
using System.Text.RegularExpressions;
namespace STH.function
{
///
/// UbbCode 的摘要说明。
///
public class UbbCode
{
Root theroot=new Root();
HttpContext context = HttpContext.Current;
public UbbCode()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

public String unhtml(string str)
{
str = context.Server.HtmlEncode(str);
str = str.Replace("&","&");
return str;
}
public String turnit(string str)
{
Regex r;
Match m;
str = str.Replace("[","[|");
str = str.Replace("]","|]");
r = new Regex(@"(http|mms|rtsp|ftp|https)(://)");
for (m = r.Match(str); m.Success; m = m.NextMatch())
{
str = str.Replace(m.Groups[0].ToString(), m.Groups[1].ToString() + "$"+m.Groups[2].ToString());
}
return str;
}
public String turnof(string str)
{
Regex r;
Match m;
str = str.Replace("[|","[");
str = str.Replace("|]","]");
r = new Regex(@"(http|mms|rtsp|ftp|https)($://)");
for (m = r.Match(str); m.Success; m = m.NextMatch())
{
str = str.Replace(m.Groups[0].ToString(), m.Groups[1].ToString() + m.Groups[2].ToString().Replace("$",""));
}

return str;
}

public String UBB(string sDetail)
{
Regex r;
Match m;
sDetail = sDetail.Replace("[swf]","[swf=300,250]");
sDetail = sDetail.Replace("[rm]","[rm=300,250]");
sDetail = sDetail.Replace("[mp]","[mp=300,250]");
sDetail = unhtml(sDetail);
sDetail = sDetail.Replace("n","
");
//sDetail = sDetail.Replace("  "," ");
//[code]标签
r = new Regex(@"([code])([sS]+?)([/code])",RegexOptions.IgnoreCase);
for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
{
sDetail = sDetail.Replace(m.Groups[0].ToString(),"" + turnit(m.Groups[2].ToString().Replace("
","n")) + "");
}
int i=1;
r = new Regex(@"([html])([sS]+?)([/html])",RegexOptions.IgnoreCase);
for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
{
i=i+1;
sDetail = sDetail.Replace(m.Groups[0].ToString(),"" + turnit(m.Groups[2].ToString().Replace("
","n")) + " [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行] ");
//sDetail = sDetail.Replace("
","");
}
sDetail=turnhtm(sDetail);
return turnof(sDetail);
}
public String turnhtm(string sDetail)
{
Regex r;
Match m;
//////////[b][/b]
r = new Regex(@"([b])([ St]*?)([/b])",RegexOptions.IgnoreCase);
for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
{
sDetail = sDetail.Replace(m.Groups[0].ToString(),"" + m.Groups[2].ToString() + "");
}
//////////////////////转换笑脸///////////////////////////
r = new Regex(@"([face=)([0-9]*)]",RegexOptions.IgnoreCase);
for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
{
sDetail = sDetail.Replace(m.Groups[0].ToString(),"");
}

r = new Regex(@"([i])([ St]*?)([/i])",RegexOptions.IgnoreCase);
for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
{
sDetail = sDetail.Replace(m.Groups[0].ToString(),"" + m.Groups[2].ToString() + "");
}

r = new Regex(@"([U])([ St]*?)([/U])",RegexOptions.IgnoreCase);
for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
{
sDetail = sDetail.Replace(m.Groups[0].ToString(),"" + m.Groups[2].ToString() + "");
}

//处[p][/p]标记
r = new Regex(@"((rn)*[p])(.+?)((rn)*[/p])",RegexOptions.IgnoreCase|RegexOptions.Singleline);
for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
{
sDetail = sDetail.Replace(m.Groups[0].ToString(),"

" + m.Groups[3].ToString() + "

");
}

//处[quote][/quote]标记
r = new Regex(@"([quote])([sS]+?)([/quote])",RegexOptions.IgnoreCase);
for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
{
sDetail = sDetail.Replace(m.Groups[0].ToString(),"Quote:

" + m.Groups[2].ToString() + "

");
}

//处标记
r = new Regex(@"([url])([ St]*?)([/url])",RegexOptions.IgnoreCase);
for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
{
sDetail = sDetail.Replace(m.Groups[0].ToString(),
"" +
m.Groups[2].ToString() + "
");
}

//处[url=xxx][/url]标记
r = new Regex(@"([url=([ St]+)])([ St]*?)([/url])",RegexOptions.IgnoreCase);
for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
{
sDetail = sDetail.Replace(m.Groups[0].ToString(),
"" +
m.Groups[3].ToString() + "
");
}

//处[email][/email]标记
r = new Regex(@"([email])([ St]*?)([/email])",RegexOptions.IgnoreCase);
for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
{
sDetail = sDetail.Replace(m.Groups[0].ToString(),
"" +
m.Groups[2].ToString() + "
");
}
//处[down][/down]标记
r = new Regex(@"([down])([ St]*?)([/down])",RegexOptions.IgnoreCase);
for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
{
sDetail = sDetail.Replace(m.Groups[0].ToString(),
"");
}
//处[w][/w]标记
r = new Regex(@"([w])([ St]*?)([/w])",RegexOptions.IgnoreCase);
for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
{
sDetail = sDetail.Replace(m.Groups[0].ToString(),
""+m.Groups[2]+"");
}

//处[email=xxx][/email]标记
r = new Regex(@"([email=([ St]+)])([ St]*?)([/email])",RegexOptions.IgnoreCase);
for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
{
sDetail = sDetail.Replace(m.Groups[0].ToString(),
"" +
m.Groups[3].ToString() + "
");
}

//处[size=x][/size]标记
r = new Regex(@"([size=([1-7])])([ St]*?)([/size])",RegexOptions.IgnoreCase);
for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
{
sDetail = sDetail.Replace(m.Groups[0].ToString(),
"" +
m.Groups[3].ToString() + "");
}

//处[color=x][/color]标记
r = new Regex(@"([color=([S]+)])([ St]*?)([/color])",RegexOptions.IgnoreCase);
for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
{
sDetail = sDetail.Replace(m.Groups[0].ToString(),
"" +
m.Groups[3].ToString() + "");
}

//处[font=x][/font]标记
r = new Regex(@"([font=(w+)])([ St]*?)([/font])",RegexOptions.IgnoreCase);
for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
{
sDetail = sDetail.Replace(m.Groups[0].ToString(),
"" +
m.Groups[3].ToString() + "");
}

//处理图片链接
r = new Regex(@"([img])(.+?)([/img])",RegexOptions.IgnoreCase);
for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
{
if(m.Groups[0].ToString().IndexOf("http://")>=0)
{
sDetail = sDetail.Replace(m.Groups[0].ToString(),"");
}
else
{
sDetail = sDetail.Replace(m.Groups[0].ToString(),"");
}
}

//处理
r = new Regex(@"([align=(w+)])([ St]*?)([/align])",RegexOptions.IgnoreCase);
for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
{
sDetail = sDetail.Replace(m.Groups[0].ToString(),
"

" +
m.Groups[3].ToString() + "

");
}

//处理[list=x][*][/list]
r = new Regex(@"([list(=(A|a|I|i| ))?]([ St]*)rn)(([*]([ St]*rn))*?)([/list])",RegexOptions.IgnoreCase);
for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
{
string strLI = m.Groups[5].ToString();
Regex rLI = new Regex(@"[*]([ St]*rn?)",RegexOptions.IgnoreCase);
Match mLI;
for (mLI = rLI.Match(strLI); mLI.Success; mLI = mLI.NextMatch())
{
strLI = strLI.Replace(mLI.Groups[0].ToString(),"

  • " + mLI.Groups[1]);
    }
    sDetail = sDetail.Replace(m.Groups[0].ToString(),
    "
      " + m.Groups[4].ToString() + "" +
      strLI + "
    ");
    }

    r = new Regex(@"[swf=([0-9]*),([0-9]*)](.+?)[/swf]",RegexOptions.IgnoreCase);
    for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
    {
    sDetail = sDetail.Replace(m.Groups[0].ToString(),"");
    }
    r = new Regex(@"[rm=([0-9]*),([0-9]*)](.+?)[/rm]",RegexOptions.IgnoreCase);
    for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
    {
    sDetail = sDetail.Replace(m.Groups[0].ToString(),"
    ");
    }
    r = new Regex(@"[mp=([0-9]*),([0-9]*)](.+?)[/mp]",RegexOptions.IgnoreCase);
    for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
    {
    sDetail = sDetail.Replace(m.Groups[0].ToString(),"");
    }
    /////////////处理链接
    r = new Regex(@"([^>=""?'])((http|mms|rtsp|ftp|https)://([A-Za-z0-9./=?%-&_~`@':+!]+))",RegexOptions.IgnoreCase);
    for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
    {
    sDetail = sDetail.Replace(m.Groups[0].ToString(),m.Groups[1]+"" + m.Groups[2].ToString() + "");
    }
    r = new Regex(@"(^|s|
    |

    )((http|https|ftp|rtsp|mms)(://)([A-Za-z0-9./=?%-&_~`@':+!]+))",RegexOptions.IgnoreCase);
    for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
    {
    sDetail = sDetail.Replace(m.Groups[0].ToString(),m.Groups[1]+"" + m.Groups[2].ToString() + "");
    }
    return sDetail;
    }
    }
    }


  •     
     
     

    您可能感兴趣的文章:

  • 用C#,asp.net 做的网站,能用Linux做服务器吗?
  • c#(asp.net)接收存储过程返回值的方法
  • c#正则过滤图片标签 asp.net正则过滤的例子
  • c#(asp.net)实现的文件下载函数
  • asp.net(c#版)添加DataRow数据列到DataTable控件
  • c#(asp.net)连接excel的实例代码
  • c#(asp.net) new与override的区别
  • asp.net(c#) 使用Rex正则来生成字符串数组的代码
  • asp.ent 图片上传数据库的代码(c#)
  • c# asp .net 动态创建sql数据库表的方法
  • c#(asp.net)生成随机数(不重复)的例子
  • c#(asp.net)访问母版页的控件、属性、方法介绍
  • c#(asp.net) 时间操作基类(支持长短日期与时间差)
  • asp.net C#检查URL是否有效的方法
  • c# UpdatePanel无刷新上传图片 asp.net无刷新上传
  • c#(asp.net)线程配置总结
  • c# asp.net 多线程实例(经典)
  • asp.net验证码代码(C#)
  • asp.net中C#获取字符串中汉字的个数的具体实现方法
  • asp.net(C#)生成无限级别菜单的代码
  • asp.net UrlEncode对应asp urlencode的处理方法
  • jsp中的如何能像asp中那样进行事务处理?
  • ASP.NET 回发密码框清空问题处理方法
  • asp.net使用mshtml处理html的代码
  • ASP.NET MVC处理文件上传的例子
  • asp.net错误处理Application_Error事件示例
  • ASP.NET mvc异常处理的方法示例介绍
  • asp.net错误捕获(错误处理)page_error事件使用方法
  • asp.net错误页面处理示例分享
  • asp.net mvc3异常处理和身份验证
  • asp.net字符串处理类代码
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • ASP.NET之 Ajax相关知识介绍及组件图
  • 我想了解一些关于Java怎样与Asp或Asp.net结合方面在未来发展方向的问题?
  • c#/ASP.NET操作cookie(读写)代码示例
  • asp.net判断数据库表是否存在 asp.net修改表名的方法
  • asp.net文字水印功能简单代码
  • jQuery Web Controls ASP.Net
  • ASP.NET 门户平台 Dropthings
  • win2008 r2 服务器环境配置(FTP/ASP/ASP.Net/PHP)
  • Asp.Net如何将多个RadioButton指定在一个组中
  • asp.net实例 定义和使用asp:AccessDataSource
  • 有没有办法把客户端IP和计算机名记录在asp.net服务器上?
  • asp.net获取用户ip地址公共类
  • asp.net 禁用viewstate(web.config中配置)的方法
  • asp.net读取本地与全局资料文件的代码
  • asp.net button 绑定多个参数
  • Asp.net日历控件显示年和月
  • 重新注册asp.net 2.0的方法
  • 用linux做服务器运行ASP.net网站,请问具体怎样实现??
  • Linux操作系统能运行Asp.net的项目吗?
  • asp.net Google样式分页控件用法
  • asp.net防止页面重复提交(示例)
  • asp与asp.net的session共享
  • 如何在unix下发布asp?
  • 怎么让Apache支持Asp?
  • ??谁能把ASP代码改为JSP的
  • Linux平台下哪种方法实现ASP好?
  • ASP和ASP.Net共享Session解决办法
  • 通过socket和asp打交道
  • 犹豫中……,到底是选择ASP,还是JSP?
  • asp 是否 可用applet标签?帮忙!!
  • 新人提问:asp+access的程序在linux下怎么改?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3