【发布时间】:2011-10-27 02:34:53
【问题描述】:
我目前在 pre 标记内显示字符串的内容,但我必须详细说明一个函数,将字符串中的每个链接替换为链接标记,我尝试了几个字符串替换和正则表达式方法,但没有人工作。
string myString = "Bla bla bla bla http://www.site.com and bla bla http://site2.com blabla"
//Logic
string outputString = "Bla bla bla bla <a href="http://www.site.com" target="blank">http://www.site.com</a> and bla bla <a href="http://site2.com" target="blank">http://site2.com</a> blabla"
我使用了以下代码,但它不适用于每个网址:
string orderedString = item.Details.Replace("|", "\n" );
string orderedStringWithUrl = "";
System.Text.RegularExpressions.Regex regx = new System.Text.RegularExpressions.Regex("http://([\\w+?\\.\\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\\'\\,]*)?", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.MatchCollection mactches = regx.Matches(orderedString);
foreach (System.Text.RegularExpressions.Match match in mactches)
{
orderedStringWithUrl = orderedString.Replace(match.Value, "<a href='" + match.Value + "' target='blank'>" + match.Value + "</a>");
}
有什么建议吗?
更新: 我注意到字符串中的 URL 都没有空格,并且都以 http 或 https 开头。 将所有以 http 或 https 开头的内容放入(但不包括)第一个空格是一个想法吗?在那种情况下,我该如何使用 .replace 来实现这一点?
提前发送。
【问题讨论】:
-
样本会有所帮助。可能您需要使用文字控件来显示字符串以将其解释为 HTML
-
我不确定我是否完全理解这个问题;所以你在页面某处的标签中有一个字符串,其中包含需要用 javascript 转换的 URL 列表?如果你能举一个简单的例子来说明你的意思,那将非常有帮助。
-
我修改了答案:)
标签: c# javascript jquery asp.net asp.net-mvc-3