您好我需要驗證一個文本框應該只接受url名稱。 有人可以告訴我。 我會很感激。Windows窗體文本框應該只接受url名稱
回答
您可以使用正則表達式來檢查輸入的文本是否是一個有效的網址:)
using System.Text.RegularExpressions;
private bool validateURL()
{
Regex urlCheck = new Regex("^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$");
if (urlCheck.IsMatch(txtUrlAddress.Text))
return true;
else
{
MessageBox.Show("The url address you have entered is incorrect!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return false;
}
}
您可以在這裏 使用此功能
if (validateURL() == true)
//Do something
else
//Do something else
檢查URL的更多RegularExpressions http://www.regexlib.com/Search.aspx?k=url&c=-1&m=5&ps=20
首先,com,org,net,mil和edu不是唯一有效的域名結尾,並且OP也沒有說它必須嚴格是你的正則表達式所要求的域的根。 – Davy8 2010-06-26 15:44:45
@ Davy8,這只是一個建議的解決方案。他可以檢查並查看是否有其他任何他認爲是最好的正則表達式並使用它。我沒有看到任何其他方式,你可以檢查字符是否是一個有效的網址:) – 2010-06-26 15:49:59
我不認爲有一個內置的方法或類,你可以用來驗證一個字符串作爲一個合法的URL 。但是你可以使用正則表達式,就像[「^ a-zA-Z0-9 -._」] +。([a-zA-Z] [a-zA-Z]) 如果你使用Ranhiru的代碼,例如bild.de和s.int都是不合適的,它們都是有效的url。
是的,我同意我的正則表達式不適用於所有情況。但使用不同的正則表達式會爲他工作:) – 2010-06-26 15:59:05
你需要的網址有效或只是正確的格式?如果是後者,那麼你可能需要一個正則表達式,正如其他答案所指出的那樣 - 但要讓它適用於所有的網址可能會非常棘手。
如果是前者,那麼只需嘗試並解析URL即可。有幾種方法可以做到這一點,每種方法都有缺點。例如,如果您使用「ping」,那麼您需要先刪除任何前導「http://」。
但是,這種方法並非萬無一失,因爲a)您可能沒有互聯網連接,並且b)主機可能關閉。
如何:
public void Test()
{
Uri result = UrlIsValid("www.google.com");
if (result == null)
{
//Invalid Url format
}
else
{
if (UrlExists(result))
{
//Url is valid and exists
}
else
{
//Url is valid but the site doesn't exist
}
}
Console.ReadLine();
}
private static Uri UrlIsValid(string testUrl)
{
try
{
if (!(testUrl.StartsWith(@"http://") || testUrl.StartsWith(@"http://")))
{
testUrl = @"http://" + testUrl;
}
return new Uri(testUrl);
}
catch (UriFormatException)
{
return null;
}
}
private static bool UrlExists(Uri validUri)
{
try
{
WebRequest.Create(validUri).GetResponse();
return true;
}
catch (WebException)
{
return false;
}
}
如果你只需要檢查它在你可以取出UrlExists部分正確的格式。
簡單多了:
/// <summary>
/// Validates that the URL text can be parsed.
/// </summary>
/// <remarks>
/// Does not validate that it actually points to anything useful.
/// </remarks>
/// <param name="urlText">The URL text.</param>
/// <returns></returns>
private bool ValidateURL(string urlText)
{
bool result;
try
{
Uri check = new Uri(urlText);
result = true;
}
catch (UriFormatException)
{
result = false;
}
return result;
}
它的工作對我來說
私人布爾ValidateURL(字符串urlText) { 布爾結果;
try
{
Uri check = new Uri(urlText);
result = true;
}
catch (UriFormatException)
{
result = false;
}
return result;
}
- 1. 文本框應該只接受日期
- 2. 文本框只接受數字和逗號-C#Windows窗體
- 3. Windows上只有英文字體名稱?
- 4. Windows窗體 - 文本接受特定的時間戳格式
- 5. Silverlight文本框只接受小數點
- 6. 屏蔽文本框只接受小數
- 7. 只接受文本框中的數字
- 8. 文本框PreviewTextInput - 只接受數字和「:」
- 9. 文本輸入框只接受Backspace
- 10. 名稱應該albhabet只
- 11. 的Windows 8 - 文本框只接受數字出錯
- 12. Windows 8的 - 使文本框只接受數字
- 13. 窗體接受塊多行文本框輸入關鍵事件
- 14. Windows窗體接受按鈕不工作
- 15. Windows窗體文本框功能不被稱爲
- 16. Windows窗體文本框顯示圖像
- 17. Windows窗體對象和文本框
- 18. Windows窗體中的文本框驗證
- 19. 動態Windows窗體文本框
- 20. Windows窗體文本框驗證
- 21. Windows窗體中的小數文本框
- 22. Windows窗體文本框限制
- 23. Windows窗體的文本框回車鍵
- 24. Windows C#窗體:關注文本框
- 25. 如何創建只接受數字的文本框和只接受WPF中的字母的文本框?
- 26. 只讀Windows窗體組合框
- 27. 以其類名稱調用Windows窗體
- 28. 在Windows窗體應用程序驗證文本框
- 29. C#Windows窗體應用程序文本框變得模糊
- 30. C#Windows窗體應用程序逐行讀取文本框
您可以使用正則表達式 - RegEx。它在驗證模式中的字符串方面非常強大。 – culithay 2012-12-27 02:55:06