在标签中显示URL作为超链接

时间:2015-03-18 14:10:14

标签: c# jquery asp.net asp.net-mvc

我的asp.Net网站上有一个标签,用于显示动态日期,具体取决于数据库中包含的内容。

有时是Text,有时是URL。

如何将标签显示网址内容作为网址?

例如,如果内容是:我已经抄袭了以下链接。 http://www.ucs.cam.ac.uk

我希望将文本显示为文本,将网址显示为链接。

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用正则表达式将任何网址解析为链接:

private string ConvertUrlsToLinks(string text)
{
    string regex = @"((www\.|(http|https|ftp|news|file)+\:\/\/)[&#95;.a-z0-9-]+\.[a-z0-9\/&#95;:@=.+?,##%&~_-]*[^.|\'|\# |!|\(|?|,| |>|<|;|\)])";
    System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex(regex, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
    return r.Replace(text, "<a href=\"$1\" title=\"Open in a new window or tab\" target=\"&#95;blank\">$1</a>").Replace("href=\"www", "href=\"http://www");
}

此代码具有额外的优势,即能够处理文本正文中的多个URL,并且可以选择&amp;仅转换www的网址。如果没有网址,它只会返回原始文字。