检查用户url输入的更好/更有效的方法?

时间:2013-10-30 02:19:41

标签: c# winforms url

我知道还有其他检查和问题的方法,但仍然试图调试我的代码。它会检查用户是否输入了没有“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课程?有什么建议吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

Uri类中有一个验证某些uri的方法,您可以按如下方式使用它:

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

编辑:

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