来自:http://tech.sina.com.cn/s/2006-04-25/1512917436.shtml
很实用的手法。和发家分享。

作为一个程序员,在完成设计后还要根据程序的情况以及用户的反映不断对程序进行改进,这样才能不断地完善自己的作品。我在制作完软件商务网 http://www.bizsofts.com 的论坛后,发现人们总喜欢在帖子中加上各种有用的URL链接或Email地址。而我当初设计时没有考虑到这一点,使得这些URL链接或Email地址只能以文字的形式而并不是以超链接的形式显示,其它浏览帖子的人还必须把这些URL链接拷贝到浏览器中或把Email地址拷贝到Outlook中才能转到相应的链接地址或发送电子邮件到相应的Email地址。

  发现这个问题后,我就着手进行解决。首先是从网上查找有关这方面的现在代码,可惜的是,在搜索引擎上反复查找也没有发现这方面的文章。后来我一想,干脆我自己用ASP.NET编写一个。

  要想自动显示超链接的关键在于如何能正确识别超链接,毫无疑问的,最有效的方法是用正则表达式。正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式,描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。.NET基础类库中包含有一个名字空间和一系列可以充分发挥规则表达式威力的类,用它就可以自动探测出文字中的URL链接或Email地址。下面我具体讲讲如何用ASP.NET(C#)一步步实现我们的目的:

  首先,要想在ASP.NET(C#)中使用正则表达式就必须把 System.Text.RegularExpressions 这个命名空间包含进来:

using System.Text.RegularExpressions;

  第二步是用正则表达式识别URL超链接:

Regex urlregex = new Regex(@"(http:\/\/([\w.]+\/?)\S*)",
RegexOptions.IgnoreCase|RegexOptions.Compiled);

  这里的代码是用正则表达式识别Email地址:

Regex emailregex = new Regex(@"([a-zA-Z_0-9.-]+@[a-zA-Z_0-9.-]+\.\w+)",
RegexOptions.IgnoreCase|RegexOptions.Compiled);

  第三步,当程序已经识别出URL超链接或Email地址后,必须用<a href=...>超链接</a>对这些超链接进行替换,这样才能把这些文字显示为链接的形式。我这里把它们全部包含在函数中:

private void Button1_Click(object sender, System.EventArgs e)
{
string strContent = InputTextBox.Text;
Regex urlregex = new Regex(@"(http:\/\/([\w.]+\/?)\S*)",
RegexOptions.IgnoreCase| RegexOptions.Compiled);
strContent = urlregex.Replace(strContent,
"<a href="" target="_blank"></a>");
Regex emailregex = new Regex(@"([a-zA-Z_0-9.-]+@[a-zA-Z_0-9.-]+\.\w+)",
RegexOptions.IgnoreCase| RegexOptions.Compiled);
strContent = emailregex.Replace(strContent, "<a href=mailto:></a>");
lbContent.Text += "<br>"+strContent;
}

  通过以上几步,你就可以在网页上自动显示超链接以及Email地址了。欢迎大家下载本示例的源代码,以及到http://www.bizsofts.com 的论坛上观看实际效果。

转载于:https://www.cnblogs.com/xxcainiao/archive/2007/10/24/935410.html

在ASP.NET中自动给URL加上超级链接相关推荐

  1. 在ASP.NET中自动给URL地址加上超链接

    作为一个程序员,在完成设计后还要根据程序的情况以及用户的反映不断对程序进行改进,这样才能不断地完善自己的作品.我在制作完软件商务网 http://www.bizsofts.com 的论坛后,发现人们总 ...

  2. 在ASP.NET中自动给URL地址加上超链接(好东东)

    首先,要想在ASP.NET(C#)中使用正则表达式就必须把 System.Text.RegularExpressions 这个命名空间包含进来: using System.Text.RegularEx ...

  3. 怎么在html中加入相对链接,html直接跳转超链接 html中怎么实现同一页面超级链接...

    html按钮button怎么加超链接 把放在a标签里,直接把链接放到标签里. 扩展资料 HTML 标签提示和注释 html 超链接如何设置点击跳转到根目录或其他目录 超链接跳转到其他的目录或者根目录一 ...

  4. 如何去掉word自动生成目录的超级链接?

    问题:整理文档时,想把word自动生成的目录拷贝到一个单独的文件,结果拷贝出来时的目录在打印预览时页码处总是"错误" 原因:拷贝出来的目录带超级链接的缘故 解决办法:全选目录,按Ctrl+Shift+ ...

  5. asp.net中获取当前url的方法

    HttpContext.Current.Request.Url.ToString() 并不可靠. 如果当前URL为 http://localhost/search.aspx?user=http://c ...

  6. asp.net中获取当前url的方法(转)

    HttpContext.Current.Request.Url.ToString() 并不可靠. 如果当前URL为 http://localhost/search.aspx?user=http://c ...

  7. JS 判断URL中是否含有 http:// 如果没有则自动为URL加上

    url = url.substr(0,7).toLowerCase() == "http://" ? url : "http://" + url; 记性不大好, ...

  8. ASP.NET中自动生成XML文件并通过XSLT显示在网页中的方法

    XML是一种很方便的描述数据的方法,其格式也比较接近HTML,因此就有了想把XML直接通过网页的形式显示在浏览器中的想法.但是直接打开XML文件,浏览器是无法解析的,只是把文档的结构原封不动地呈现出来 ...

  9. asp.net 中 HttpRequest 中跟URL path 有关的方法和属性 (摘自用怪异的眼光去研究blog)

    对于获取URL path,在HttpRequest 类中已经封装好了很多的相关的方法和属性. 可是在使用中,依然容易被搞迷糊,那个方法是获取相对路径的,那个方法是获取绝对的,每次都会晕上一会儿. 今儿 ...

  10. vue项目中自动跳转到外部链接

    今天在写一个web项目的时候,发现有一个功能需要点击导出,然后弹出框选择下载在本地,并且要求下的文件是xlsx类型的.首先我的思路是,点击导出,然后后端查询数据库的数据,把数据写入本地xlsx表中,然 ...

最新文章

  1. 2021-2027年中国中高端女装行业市场分析预测及投资方向研究报告
  2. 社交媒体如何破坏了你的生活? | 大咖来了
  3. 30K程序员的简述:如何成为高级开发人员
  4. c++vector替换元素_从发展来看Vector与Hashtable的淘汰
  5. FFmpeg编码扩展之————编码库的扩展(libfdk-aac)
  6. [异常记录] Error: Could not find header file for MYSQL
  7. 【BZOJ4242】水壶(克鲁斯卡尔重构树,BFS)
  8. CentOS 7 安装 Python 3.6
  9. C#: Writing a CookieContainer to Disk and Loading Back In For Use
  10. linux下内存的统计和内存泄露问题的定位-转
  11. php代码连接mysql数据库,php连接mysql数据库代码
  12. 【数字IC设计】001. IC设计基础
  13. js对日期进行升序排序
  14. 【项目管理】项目管理四要素
  15. 没事干的时候可以看这些,超全超多…
  16. springboot+Vue+Elementui医院网上预约挂号系统java项目
  17. C++function,future,packaged_task
  18. 普渡大学统计与计算机科学,普渡大学西拉法叶校区计算机科学与工程世界排名2017年最新排名第47(ARWU世界排名)...
  19. Cache 的地址映像方式(4种)
  20. mysql数据库中对数据的基本操作

热门文章

  1. 广工c语言试卷504,广工C语言试卷与答案.doc
  2. mysql面试题 真的很不错
  3. cenos各个版本下载地址
  4. JavaScript 求和(字符串转换成数组、for循环求和)
  5. 开局崩盘!IDEA 2020 无法启动的解决办法|赠送 IDEA 2020 新功能
  6. JavaScript JSON 对象使用详解、JSON. parse()、JSON. stringify()
  7. 牛客多校训练AFJ(签到)
  8. 【python】-- 多进程的基本语法 、进程间数据交互与共享、进程锁和进程池的使用...
  9. VS2010_x86_编译错误
  10. tp读取配置文件机制