【问题标题】:C# - How to read what a text box starts with?C# - 如何读取文本框的开头?
【发布时间】:2016-07-01 14:45:34
【问题描述】:

所以我正在寻找的是这样的:

如果文本框以“www”开头。或 'http://' 或 'https://' 然后运行

webBrowser1.Navigate(toolStripTextBox1.Text);

举个例子。 所以它最终会看起来像这样(我不完全确定。)

if(toolStripTextBox1.Text == "www." + anything)

这些只是示例。我真的不知道...

【问题讨论】:

  • stackoverflow.com/questions/16037445/c-sharp-string-contains 这可能会对您有所帮助。 StartsWith 函数似乎更有用。见下文。
  • 如果您使用的是 Visual Studio,我建议您熟悉如何有效地使用 Intellisense。许多这些类型的操作已经存在,并且命名相当直观,正如您在StartsWith 中看到的那样。还有EndsWithContainsIsNullOrEmpty等只针对字符串。

标签: c#


【解决方案1】:

在您的情况下使用String.StartsWith() 方法:

if(toolStripTextBox1.Text.StartsWith("www."))

【讨论】:

  • 谢谢,我知道有一个startswith函数,但我不知道如何使用它:)很好用。
  • 如果这有帮助,那么您可以接受它作为答案。祝你好运。
  • 我试过了,但它说我必须等待 11 分钟,我现在很确定
【解决方案2】:

从你的例子来看,你想检查用户是否输入了一个有效的 URL。手动检查字符串不是正确的方法。

您应该尝试使用Uri.TryCreate 解析Uri 对象。如果成功 - 您知道用户输入了一个有效的 URL。然后您可以使用创建的uri 作为WebBrowser.Navigate 的参数:

Uri uri;
if(Uri.TryCreate(toolStripTextBox1.Text, UriKind.Absolute, out uri))
{
    webBrowser1.Navigate(uri);
}

【讨论】:

    【解决方案3】:

    C# 有一个用于字符串的startswith 函数。所以

    if(toolStripTextBox1.Text.Startswith("www.")) 
    {  ..
    }
    

    【讨论】:

      【解决方案4】:

      您需要执行以下操作:

      if (toolStripTextBox1.Text.StartsWith("www."))
      {
          // do something
      }
      

      String.StartsWith method 将为您提供所需的一切。

      【讨论】:

        【解决方案5】:
        string text = toolStripTextBox1.Text;
        if (text.StartsWith("www.") || text.StartsWith("http://") || text.StartsWith("https://"))
        {
            webBrowser1.Navigate(text);
        }
        

        但是,如果您要检查文本框文本是否为有效 URL,我建议使用 Uri.IsWellFormedUriString Method

        if (Uri.IsWellFormedUriString(text, UriKind.RelativeOrAbsolute))
        

        【讨论】:

          【解决方案6】:

          或者对于更复杂的搜索,您可以使用 REGEX CLASS SOURCE

          using System;
          using System.Text.RegularExpressions;
          
          String myString = toolStripTextBox1.Text;
          Regex myRegex = new Regex(@"www.\S+");
          Match myMatches = myRegex.Match(myString);
          if(myMatches.Groups.Count>0)return true;
          

          ONLINE EXAMPLE

          【讨论】:

          • 为什么要为 that 使用正则表达式? ಠ_ಠ
          • @GediminasMasaitis - 如果文本框的名称是“www.exemple.com 之前的单词”,则 text.Startswith 将不起作用,因此 Regex 将是一个不错的选择,如果他需要网页链接他就能拥有了!
          猜你喜欢
          • 1970-01-01
          • 2018-03-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-05-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多