Asp.net mvc 显示时将字符串的一部分转换为URL
我四处寻找解决方案,我相信这是一个简单的问题,但仍然不知道如何做到这一点。所以,我有一个字符串,其中包含许多单词,有时还包含链接。例如: 我喜欢这个网站,我建议你也试试 我想在视图中显示该字符串,并将所有链接自动转换为URLAsp.net mvc 显示时将字符串的一部分转换为URL,asp.net-mvc,razor,Asp.net Mvc,Razor,我四处寻找解决方案,我相信这是一个简单的问题,但仍然不知道如何做到这一点。所以,我有一个字符串,其中包含许多单词,有时还包含链接。例如: 我喜欢这个网站,我建议你也试试 我想在视图中显示该字符串,并将所有链接自动转换为URL @Model.MyText 即使是StackOverflow也能做到 一种方法是对文本块进行正则表达式匹配,并用锚定标记替换url字符串。@Hunter是正确的。 此外,我在C#::中找到了完整的实现 以防原始链接中断 VB.Net实现 受保护的函数MakeLink(By
@Model.MyText
即使是StackOverflow也能做到 一种方法是对文本块进行正则表达式匹配,并用锚定标记替换url字符串。@Hunter是正确的。 此外,我在C#::中找到了完整的实现 以防原始链接中断 VB.Net实现
受保护的函数MakeLink(ByVal txt作为字符串)作为字符串
将regx调整为新的正则表达式(“http:/([\w+?\.\w+])+([a-zA-Z0-9\~\!\\\\\\\\\$\%\\\\\\\\\*(\)\\\-\=\+\\\\/\.\:\',]*)?”,RegexOptions.IgnoreCase)
Dim mactches As MatchCollection=regx.Matches(txt)
在mactches中的每一个匹配
txt=txt.Replace(match.Value,“”)
下一个
返回文本
端函数
C#.Net实现
受保护的字符串MakeLink(字符串txt)
{
Regex regx=new Regex(“http://([\\w+?\\.\\w+])+([a-zA-Z0-9\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
MatchCollection mactches=regx.Matches(txt);
foreach(mactches中的匹配){
txt=txt.Replace(match.Value,“”);
}
返回txt;
}
另一个可以与KvanTTT answer一起使用的正则表达式,具有接受https URL的额外好处
https?:/([\w+?。\w+])+([a-zA-Z0-9\~!\@\\$\%\^\&*()u-\=+\/\?:\\',]*)
.net字符串表示法:
"https?://([\\w+?\\.\\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\\'\\,]*)?"
protected string MakeLink(string txt)
{
Regex regx = new Regex("http://([\\w+?\\.\\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\\'\\,]*)?", RegexOptions.IgnoreCase);
MatchCollection mactches = regx.Matches(txt);
foreach (Match match in mactches) {
txt = txt.Replace(match.Value, "<a href='" + match.Value + "'>" + match.Value + "</a>");
}
return txt;
}
"https?://([\\w+?\\.\\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\\'\\,]*)?"