【问题标题】:Better/efficient way to check users url input?检查用户网址输入的更好/更有效的方法?
【发布时间】:2013-11-09 11:03:45
【问题描述】:

我知道还有其他类似的检查方法和问题,但仍在尝试调试我的代码。它检查用户输入的网址是否没有“http://”

 //page is a global variable, a string in this case
 //loadPage(string url) loads the requested page;
 private void checkIfUrlRight(string s)
    {
        if (!s.StartsWith("http://"))
        {
            if (!s.Contains("www."))
            {
                s += "http://www.";
                page = s;
            }
            else
            {
                s += "http://";
                page = s;
            }
            urlRTextBox.Text = page;
            loadPage(page);
        }
        else
            page = s;
        urlRTextBox.Text = page;
        loadPage(page);

    }

加载页面时出现错误,提示 URL 错误。实际上我的代码是否有意义,或者我应该切换到复杂的东西,如正则表达式(通过网络查看,看起来很苛刻,不知道从哪里开始)或玩 c# Uri 类?有什么建议吗?

提前致谢。

【问题讨论】:

标签: c# winforms url


【解决方案1】:

Uri 类中有一个方法可以验证某个 uri,可以如下使用:

void checkIfUrlRight(string s)
{
  if (Uri.IsWellFormedUriString(s, UriKind.RelativeOrAbsolute))
  { 
    urlRTextBox.Text = page;
    loadPage(page);
  }
}

编辑:

请注意,实际上并非每个 URI 都是 URL(描述为 here)。但我相信对于您的情况(当所有 URL 都是 URI 时),这是最简单的验证方法。

【讨论】:

  • 非常感谢,这不是我真正需要的。无论如何,修复我的代码,对我有用。
猜你喜欢
  • 1970-01-01
  • 2011-11-20
  • 1970-01-01
  • 1970-01-01
  • 2012-03-19
  • 2011-09-06
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
相关资源
最近更新 更多