URL的正则表达式

时间:2010-11-11 05:50:52

标签: asp.net regex validation

我有一个asp.net应用程序,其中有一个用于输入主页URL的文本框。默认情况下,此文本框包含 http:// 。如果用户输入了其他文本而不是现有文本,则会进行验证。否则保持原样。怎么可能?请通过提供解决此问题的正则表达来帮助我。

2 个答案:

答案 0 :(得分:1)

试试这个表达

^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?$

来自http://msdn.microsoft.com/en-us/library/ff650303.aspx#paght000001_commonregularexpressions

或者代码中的这种机制

public bool IsValidUri(string uri)
{
  Uri validatedUri;
  return Uri.TryCreate(uri, UriKind.RelativeOrAbsolute, out validatedUri);
}

发布者:0xA3 Is there a URL validator on .Net?

HTH

答案 1 :(得分:1)

验证URL并不是一件容易的事。在编写这样的正则表达式时,您应该记住所有约束。我从未见过能够验证url是否有效的表达式。 F.i.有些本地字符的网址为http://президент.рф,根据MSDN建议的常规格式无效。但是,查看Apache's UrlValidator

可能会有所帮助