用于url验证的正则表达式

时间:2010-11-28 14:46:46

标签: php regex validation

  

可能重复:
  PHP validation/regex for URL

您好,

在我的表单中我有一个url字段。用户输入所有类型的网址。我使用以下正则表达式来验证网址:

/^(https?):\/\/(?:[A-Z0-9-]+.)+[A-Z]{2,6}([\/?].+)?$/i

但是这个正则表达式将一些url视为无效,例如以下

http://partners.webmasterplan.com/click.asp?ref=537448&site=5643&type=b479&bnb=479

有关如何改进正则表达式的任何想法吗?

3 个答案:

答案 0 :(得分:2)

为什么不使用filter_var

filter_var('example.com', FILTER_VALIDATE_URL))

不要在没有必要的情况下使用正则表达式

答案 1 :(得分:1)

这个问题以前已经解决过很多次了。例如,请参阅here

答案 2 :(得分:1)

至于你的正则表达式,第一个时期需要像这样转义

/^(https?):\/\/(?:[A-Z0-9-]+\.)+[A-Z]{2,6}([\/?].+)?$/i