2013-10-30 18 views
0

我知道還有其他方式的檢查和這樣的問題,但仍然試圖調試我的一段代碼。它檢查用戶輸入的網址沒有的「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); 

    } 

加載頁面時,我得到一個錯誤,它說,地址是錯誤的。實際上,我的代碼會有什麼意義,或者我只需要切換到像regex這樣複雜的東西(通過網頁瀏覽,看起來很苛刻,不要從哪裏開始),或者玩弄c#Uri類?有什麼建議麼?

在此先感謝。

+1

可能重複的[URL驗證的正則表達式](http://stackoverflow.com/questions/9289007/regular-expression-for-url-validation) –

回答

2

有一個在Uri類驗證特定URI的方法,你可以按如下方式使用它:

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

編輯:

注意,實際上不是每個URI是URL(描述here)。但我相信你的情況(當所有的URL都是URI時),它是最簡單的驗證方式。

+0

非常感謝,這不是我真正需要的。無論如何,修復我的代碼,爲我工作。 – Messerschmitt

相關問題