URL的正则表达式以http / https或www开头

时间:2011-08-01 03:07:38

标签: asp.net regex

用户应该可以使用以下任何格式编写

http://www.microsoft.com 要么 https://www.microsoft.com 要么 www.microsoft.com

编程语言:C#

2 个答案:

答案 0 :(得分:6)

这适用于大多数正则表达式处理器:

/((?:https?\:\/\/|www\.)(?:[-a-z0-9]+\.)*[-a-z0-9]+.*)/i

这与之匹配:

  • http://https://www.
  • 开头的任何内容
  • 后跟至少一个或多个有效域字符(a-z,0-9或 - )
  • 不区分大小写的匹配(/i
  • 强制执行空格,因此与此匹配:blahwww.domain.com,并返回www.domain.com如果您想强制执行空间,将\s添加到开头,但是您必须确保在字符串的开头添加一个空格以匹配。

(?:)块是不匹配的组。它们可以防止为这些特定的字符组分配编号。如果你的正则表达式处理器有问题,可以用匹配的组()替换它们。第1组始终是整个网址。

它并不是非常严格,但它匹配所有标准域名(但可能会忽略一些无效域名)。

此外,下次您可能希望包含编程语言或上下文,因为正则表达式处理器在功能支持方面差异很大。

答案 1 :(得分:0)

不使用http | https | fts

Var url = /^((www|WWW)\.){1}?([a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+(\.[a-zA-Z0-9]+)*)$/;

使用http | https | fts

var url = /^((http|ftp|https):\/\/|((www|WWW)\.)){1}?([a-zA-Z0-9]+(\.[a-zA-Z0-  9]+)+(\.[a-zA-Z0-9]+)*)$/;