【问题标题】:how to check if a url has a substring如何检查网址是否有子字符串
【发布时间】:2012-04-12 04:51:15
【问题描述】:

如果 WebBrowser 中的 SubString 匹配 TextBox 中的 SubString,如果启用,它将启用所有控件,但我似乎无法让它工作。

这是我当前的代码:

string str = "www.google.com";

int pos = str.IndexOf(".") + 1;
int pos2 = str.LastIndexOf(".") - 4;
string str2 = str.Substring(pos, pos2);

if (webBrowser1.Url.AbsoluteUri.Substring(pos, pos2) == textBox1.Text.Substring(pos, pos2))
{
    foreach (Control c in Controls)
    {
        c.Enabled = true;
    }
}

我们将不胜感激。

【问题讨论】:

  • 首先,我认为您在设置pos2 时并不是要拥有-4。其次,您似乎在比较相同的子字符串操作?您能否提供您将使用的 TextBox 值的示例,以及您想要匹配的具体部分(在文本值中)
  • 确保你也考虑了文本的大小写。
  • -4 是正确的(对于给出的示例)。 OP 在提取子字符串时想要获取 google.com。不过这个名字很混乱。这是要检索的子字符串的 len

标签: c# winforms url browser


【解决方案1】:

只需使用string.contains

if(textBox1.Text.ToLower().Contains(str.ToLower()))
...

【讨论】:

    【解决方案2】:

    如果您只需要知道字符串中存在子字符串,请按照 Justin Pihony 的建议使用 String.Contains

    如果您需要知道它在字符串中的何处,请使用String.IndexOf()。如果字符串根本不存在,此方法将返回 -1。

    【讨论】:

      【解决方案3】:

      Uri 类是一个很棒的东西。

      Uri google = new Uri("http://www.google.com/");
      if (webBrowser.Url.Host == google.Host){
      }
      

      甚至简单地说:

      if (webBrower.Url.Host.ToLower().Contains("google")) {
      }
      

      【讨论】:

        猜你喜欢
        • 2014-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-22
        • 2013-05-01
        • 1970-01-01
        相关资源
        最近更新 更多