【问题标题】:Hyperlink inside a label标签内的超链接
【发布时间】:2014-10-15 15:38:13
【问题描述】:

我正在尝试在从数据库获取的标签上放置一个超链接。如何才能做到这一点?我已经尝试过这样的事情,但是,它根本不起作用:

for (int ctr = 0; ctr < 40; ctr++)
    {
        string input = labels[ctr].Text;
        string pattern = @"(http)*";

        Regex rgx = new Regex(pattern, RegexOptions.IgnoreCase);
        MatchCollection matches = rgx.Matches(input);
        if (matches.Count > 0)
        {
            if (matches.Count > 0)
        {
            Console.WriteLine("match found");
            labels[matches.Count].Text = "<a href='" + labels[matches.Count].Text + "'>" + labels[matches.Count].Text + "</a>";
            break; + "</a>";
        }

    }

但是,此代码仅将其放在一个上,它就是在一个上,即使这样,它也并不总是正确的。

【问题讨论】:

  • 您不应该创建一个正确的超链接(即:HyperLink link = new HyperLink();)并将其添加到标签中,如下所示:labels[ctr].Add() 或类似的东西吗?我已经有一段时间不玩这个了。
  • 我仍然需要它只在这是一个链接时才匹配。我不需要将标签中的所有单词都添加一个超链接。

标签: c# html url hyperlink labels


【解决方案1】:

我很抱歉让这个答案而不是评论,但如果可以的话,我会的。

首先,你的正则表达式只会匹配像“”、“html”和“htmlhtml”这样的字符串,如果你正在创建一个有效的链接,这可能不是你想要的。您需要正则表达式来匹配整个标签/链接,而不仅仅是其中的“html”部分。

检查有效的 URL 是一个有趣的问题,以下是一些可能有帮助的答案:

其次,不清楚这些链接将如何显示。但是,假设它们最终被放入 HTML 并且您正确匹配链接,那么您构建字符串的方式应该会生成有效的超链接。另外,不要忘记转义标签中的任何引号。

【讨论】:

  • 谢谢,感谢您的帮助。但是,如果我检查整个标签,那么我永远不会得到有效的链接,除非用户只是添加了链接。我正在构建一个公告板,用户将能够将文本添加到标签和标签中的某个位置,如果他们愿意,可以添加一个链接。我编辑了我的代码并让它绑定到一个标签,但是,它不能让它工作超过一个。明天上班后我会发布修改后的代码。
  • 另外,我有一个标签数组,这些标签从 SQL 数据库中获取数据,并将其发布在页面上。还有另一个页面,有人在文本框中输入文本,然后将其发送到数据库。如果有更好的方法,我会全力以赴!
  • 所以如果我理解正确:这些标签可能包含也可能不包含 URL,如果是这样,那么我们想让标签的那部分成为超链接。如果是这种情况,您仍然需要您的正则表达式来匹配整个 URL(而不是整个标签,而不仅仅是您当前匹配的 http 部分)。我提供的链接应该对此有所帮助。
  • 另外,请注意让用户输入直接进入查询的输入是危险的。 SQL 注入是需要认真对待的事情(更多信息:en.wikipedia.org/wiki/SQL_injection)。
  • 正确。我最终只是为超链接添加了一个单独的标签。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-30
  • 1970-01-01
  • 2013-05-11
  • 2012-07-20
  • 2014-02-04
  • 1970-01-01
  • 2014-04-29
相关资源
最近更新 更多