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 が間違っているというエラーが表示されます。実際に私のコードは意味がありますか、それとも正規表現のような複雑なものに切り替えるだけですか (Web を調べた、粗く見える、どこから始めるべきかわかりません) か、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 に答える