作为一个程序员在完成设计后还要根据程序的情况以及用户的反映不断对程序进行改进这样才能不断地完善自己的作品我在制作完软件商务网http://wwwbizsoftscom 的论坛后发现人们总喜欢在帖子中加上各种有用的URL链接或Email地址而我当初设计时没有考虑到这一点使得这些URL链接或Email地址只能以文字的形式而并不是以超链接的形式显示其它浏览帖子的人还必须把这些URL链接拷贝到浏览器中或把Email地址拷贝到Outlook中才能转到相应的链接地址或发送电子邮件到相应的Email地址
发现这个问题后我就着手进行解决首先是从网上查找有关这方面的现在代码可惜的是在搜索引擎上反复查找也没有发现这方面的文章后来我一想干脆我自己用ASPNET编写一个
要想自动显示超链接的关键在于如何能正确识别超链接毫无疑问的最有效的方法是用正则表达式正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式描述了一种字符串匹配的模式可以用来检查一个串是否含有某种子串将匹配的子串做替换或者从某个串中取出符合某个条件的子串等NET基础类库中包含有一个名字空间和一系列可以充分发挥规则表达式威力的类用它就可以自动探测出文字中的URL链接或Email地址下面我具体讲讲如何用ASPNET(C#)一步步实现我们的目的
首先要想在ASPNET(C#)中使用正则表达式就必须把 using SystemTextRegularExpressions;
第二步是用正则表达式识别URL超链接
Regex urlregex = new Regex(@
(http:\/\/([\w
]+\/?)\S*)
RegexOptionsIgnoreCase|RegexOptionsCompiled);
这里的代码是用正则表达式识别Email地址
Regex emailregex = new Regex(@
([a
zA
Z_
]+@[a
zA
Z_
]+\
\w+)
RegexOptionsIgnoreCase|RegexOptionsCompiled);
第三步当程序已经识别出URL超链接或Email地址后必须用<a href=>超链接</a>对这些超链接进行替换这样才能把这些文字显示为链接的形式我这里把它们全部包含在函数中
private void Button
_Click(object sender
System
EventArgs e)
{
string strContent = InputTextBoxText;
Regex urlregex = new Regex(@(http:\/\/([\w]+\/?)\S*)
RegexOptionsIgnoreCase| RegexOptionsCompiled);
strContent = urlregexReplace(strContent
<a href= target=_blank></a>);
Regex emailregex = new Regex(@([azAZ_]+@[azAZ_]+\\w+)
RegexOptionsIgnoreCase| RegexOptionsCompiled);
strContent = emailregexReplace(strContent <a href=mailto:></a>);
lbContentText += <br>+strContent;
}
通过以上几步你就可以在网页上自动显示超链接以及Email地址了