<%
int amountOfTags = 0;
string text = "hi @dude im @cool kay";
int number1 = 1;
int number2 = 0;
for (int a = 0; a < text.Length; a++)
{
if (text.Substring(a, 1) == "@")
{
amountOfTags++;
}
}
for (int i = 0; i < text.Length; i++)
{
if (text.Substring(i, 1) == "@")
{
number1 = i;
}
if (text.Substring(i, 1) == " " && number1 > number2)
{
number2 = i;
}
int number3 = number2 - number1;
if (number2 - number1 < 13 && number1 > 0 && number2 > 0 && number2 > number1 && number2 == i && amountOfTags != -1)
{
if (text.Substring(number1 + 1, number3) != ", ")
{
Response.Write(text.Substring(number1 + 1, number3 - 1));
amountOfTags--;
}
}
}
%>
好的,所以这段代码以文字为例&#34; hi @dude im @cool kay&#34;在ASP.NET中,并在@之后返回文本,因此代码将返回我&#39; dude&#39;并且&#39;很酷&#39; 现在我的问题是,如何使它从子串返回我的文本成为一个链接和粗体? (就像在特定文本中添加元素一样)。
是否可以使用ASP.NET或JS?
答案 0 :(得分:0)
我会使用Regular Expression而不是所有令人困惑的子串逻辑。您可以将逻辑简化为单行和包含所需的锚点包装器:
<% string text = "hi @dude im @cool kay"; %>
<%= Regex.Replace(text, @"@([\S]+)", @"<a href=""#""><b>$1</b></a>") %>
注意:为了简单起见,我添加了<b>
标记,但我建议删除它们并使用CSS将链接设为粗体。