Windows窗体文本框应仅接受网址名称

时间:2010-06-26 15:34:39

标签: c# winforms validation url textbox

您好我需要验证文本框是否只接受网址名称。 请有人告诉我。 我真的很感激。

6 个答案:

答案 0 :(得分:1)

我认为没有内置方法或类可用于将字符串验证为合法网址。但你可以使用正则表达式,如[“^ a-zA-Z0-9 -._”] +。([a-zA-Z] [a-zA-Z]) 如果您使用Ranhiru的代码,那么您将无法使用例如bild.de和s.int这两个都是有效的网址。

答案 1 :(得分:1)

您是否需要URL有效或只是正确的格式?如果它是后者那么你可能需要一个正则表达式,因为其他答案指出 - 但让它为所有 URL工作可能会很棘手。

如果是前者,那么只需尝试解析URL。有几种方法可以做到这一点,每种方法都有缺点。例如,如果您使用“ping”,那么您需要先移除任何前导“http://”。

但是,这种方法并非万无一失,因为a)您可能没有互联网连接,而b)主机可能已关闭。

答案 2 :(得分:1)

这个怎么样:

    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部分。

答案 3 :(得分:0)

您可以使用正则表达式检查输入的文本是否是有效的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

在此处检查更多网址的RegularExpressions http://www.regexlib.com/Search.aspx?k=url&c=-1&m=5&ps=20

答案 4 :(得分:0)

更简单:

_______________________________________________________________6_______________________________________________________________
_______________________________0_______________________________________________________________7_______________________________
_______________N_______________________________3_______________________________N_______________________________8_______________
_______N_______________N_______________2_______________5_______________N_______________N_______________N_______________9_______
___N_______N_______N_______N_______1_______N_______4_______N_______N_______N_______N_______N_______N_______N_______N_______N___
_N___N___N___N___N___N___N___N___N___N___N___N___N___4___N___N___N___N___N___N___N___N___N___N___N___N___N___N___N___N___N___N_
N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_3_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N_N

答案 5 :(得分:0)

为我工作

private bool ValidateURL(string urlText)     {         布尔结果;

    try
    {
        Uri check = new Uri(urlText);
        result = true;
    }
    catch (UriFormatException)
    {
        result = false;
    }

    return result;
}