如何将选定的子字符串作为链接和粗体?

时间:2016-09-10 11:51:35

标签: javascript asp.net

<%
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?

1 个答案:

答案 0 :(得分:0)

我会使用Regular Expression而不是所有令人困惑的子串逻辑。您可以将逻辑简化为单行包含所需的锚点包装器:

<% string text = "hi @dude im @cool kay"; %>
<%= Regex.Replace(text, @"@([\S]+)", @"<a href=""#""><b>$1</b></a>") %>

注意:为了简单起见,我添加了<b>标记,但我建议删除它们并使用CSS将链接设为粗体。

相关问题