0

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

 //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 类?有什么建议么?

提前致谢。

4

1 回答 1

2

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

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

编辑:

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

于 2013-10-30T02:41:16.677 回答