|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
今天去面试,被问到C#中的new关键字,看了那么多的书对new关键字还是有一定认识,回来又把new复习了一遍,发现了许多以前还不知道的细节。asp.net|链接 作为一个程序员,在完成计划后还要依据程序的情形和用户的反应不休对程序举行改善,如许才干不休地完美本人的作品。我在制造完软件商务网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这个定名空间包括出去:
usingSystem.Text.RegularExpressions;
第二步是用正则表达式辨认URL超链接:
Regexurlregex=newRegex(@"(http://([w.]+/?)S*)",
RegexOptions.IgnoreCase|RegexOptions.Compiled);
这里的代码是用正则表达式辨认Email地点:
Regexemailregex=newRegex(@"([a-zA-Z_0-9.-]+@[a-zA-Z_0-9.-]+.w+)",
RegexOptions.IgnoreCase|RegexOptions.Compiled);
第三步,当程序已辨认出URL超链接或Email地点后,必需用<ahref=...>超链接</a>对这些超链接举行交换,如许才干把这些笔墨显现为链接的情势。我这里把它们全体包括在函数中:
privatevoidButton1_Click(objectsender,System.EventArgse)
{
stringstrContent=InputTextBox.Text;
Regexurlregex=newRegex(@"(http://([w.]+/?)S*)",
RegexOptions.IgnoreCase|RegexOptions.Compiled);
strContent=urlregex.Replace(strContent,
"<ahref=""target="_blank"></a>");
Regexemailregex=newRegex(@"([a-zA-Z_0-9.-]+@[a-zA-Z_0-9.-]+.w+)",
RegexOptions.IgnoreCase|RegexOptions.Compiled);
strContent=emailregex.Replace(strContent,"<ahref=mailto:></a>");
lbContent.Text+="<br>"+strContent;
}
经由过程以上几步,你就能够在网页上主动显现超链接和Email地点了。接待人人下载本示例的源代码,和到http://www.bizsofts.com的论坛上寓目实践效果。有理由相信是能提供更出色的性能。很多平台无法支持复杂的编译器,因此需要二次编译来减少本地编译器的复杂度。当然可能做不到java编译器那么简易。 |
|