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

在进行asp.net开发时,经常会遇到页面中有很多的Url或者E-mail,我想让其自动的添加超级链接。这里是采用了网上大多数朋友的做法,即用正则表达式进行替换。

 一、写一个正则表达式进行替换的方法

public string Url_Rewrite ( string Text )
    {
        //用正则表达式识别URL超链接
        Regex UrlRegex = new Regex(@"(http:([/w.]+//?)/S*)" , RegexOptions.IgnoreCase | RegexOptions.Compiled);
       
        MatchCollection matches = UrlRegex.Matches(Text);
        foreach (Match match in matches)
        {
            Text = Text.Replace(match.Value , string.Format("<a href=/"{0}/" target=/"_blank/">{1}</a>" , match.Value , match.Value));
        }
        //用正则表达式识别Email地址
        Regex EmailRegex = new Regex(@"([a-zA-Z_0-9.-]+/@[a-zA-Z_0-9.-]+/./w+)" , RegexOptions.IgnoreCase | RegexOptions.Compiled);
        matches = EmailRegex.Matches(Text);
        foreach (Match match in matches)
        {
            Text = Text.Replace(match.Value , string.Format("<a href=mailto:{0}>{1}</a>" , match.Value , match.Value));
        }
        return Text;
    }
二、调用方法则“自动”进行替换

div1.InnerHtml = Url_Rewrite(div1.InnerHtml);

//div1是div的ID号
//<div id="div1" runat="server"></div>

 

这样div中的Url或者E-mail只要符合正则表达式则会自动的转化成超级链接的格式。

如果页面比较多的时候,每个页面调用这个方法会比较麻烦,可以写在基类中,其他页面继承基类即可,但是我没有时间没有进行测试,也不知道是否可行,如果谁搞定了别忘记告诉我一下,谢谢!
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值