Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 显示时将字符串的一部分转换为URL_Asp.net Mvc_Razor - Fatal编程技术网

Asp.net mvc 显示时将字符串的一部分转换为URL

Asp.net mvc 显示时将字符串的一部分转换为URL,asp.net-mvc,razor,Asp.net Mvc,Razor,我四处寻找解决方案,我相信这是一个简单的问题,但仍然不知道如何做到这一点。所以,我有一个字符串,其中包含许多单词,有时还包含链接。例如: 我喜欢这个网站,我建议你也试试 我想在视图中显示该字符串,并将所有链接自动转换为URL @Model.MyText 即使是StackOverflow也能做到 一种方法是对文本块进行正则表达式匹配,并用锚定标记替换url字符串。@Hunter是正确的。 此外,我在C#::中找到了完整的实现 以防原始链接中断 VB.Net实现 受保护的函数MakeLink(By

我四处寻找解决方案,我相信这是一个简单的问题,但仍然不知道如何做到这一点。所以,我有一个字符串,其中包含许多单词,有时还包含链接。例如:

我喜欢这个网站,我建议你也试试

我想在视图中显示该字符串,并将所有链接自动转换为URL

@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\\~\\!\\@\\#\\$\\%\\^\\&amp;\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\\'\\,]*)?"