C# 输出带有超链接的文本
如果您有来自以下数据库的文本:C# 输出带有超链接的文本,c#,.net,ruby-on-rails,asp.net-mvc,asp.net-mvc-2,C#,.net,Ruby On Rails,Asp.net Mvc,Asp.net Mvc 2,如果您有来自以下数据库的文本: "New Apple TV Offers 8 GB of Internal Storage, 256 MB RAM http://t.co/fQ7rquF" 有没有一种助手方法可以将该文本和web地址包装为锚定标记?在我的脑海中,我会运行一个正则表达式来匹配链接模式,并在其周围抛出锚定标记 在谷歌上找到: using System.Text.RegularExpressions; public string ConvertURLsToHyperlinks(
"New Apple TV Offers 8 GB of Internal Storage, 256 MB RAM http://t.co/fQ7rquF"
有没有一种助手方法可以将该文本和web地址包装为锚定标记?在我的脑海中,我会运行一个正则表达式来匹配链接模式,并在其周围抛出锚定标记 在谷歌上找到:
using System.Text.RegularExpressions;
public string ConvertURLsToHyperlinks(string sInput)
{
return Regex.Replace(sInput, @"(\bhttp://[^ ]+\b)", @"<a href=""$0"">$0</a>");
}
使用System.Text.regular表达式;
公共字符串转换器URLSTO超链接(字符串输入)
{
返回Regex.Replace(sInput,@“(\bhttp://[^]+\b)”,@”);
}
它查找“http://”,后跟任何非空格的内容,由单词边界分隔。我相信没有这样的助手方法,但您可以创建一个
public static class helper{
public static string AnchorHelper(this htmlHelper helper, string text)
{
//here u can use kevin's function to generate anchors
return ConvertURLsToHyperlinks(text);
}
}
您必须在视图中添加相应的名称空间,然后您可以像其他html助手一样使用它
<%=Html.AnchorHelper(TextwithUrls)%>
这在问题中所述的示例中有效,但现实世界中的许多URL以斜杠(/
)或其他标点字符结尾,您的正则表达式与之不匹配。这实际上不起作用。我从Kevin提供的链接复制了正则表达式,该链接起作用-RegEx.Replace(sInput,@“(\bhttp://[^]+\b)”,@“)@Timwi-我们如何修改正则表达式来修复它?@Timwi-在正则表达式上加一个斜杠似乎很好end@Jon:不,没有。它不会链接斜杠。(和其他标点符号)类需要标记为static
,以便允许在其中使用扩展方法。