代码之家  ›  专栏  ›  技术社区  ›  DarkLeafyGreen

url验证的正则表达式[重复]

  •  -1
  • DarkLeafyGreen  · 技术社区  · 14 年前

    可能重复:
    PHP validation/regex for URL

    你好,

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

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

    但是这个regex处理一些无效的url,例如

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

    有什么办法改进regex吗?

    3 回复  |  直到 7 年前
        1
  •  2
  •   Haim Evgi    14 年前

    为什么不使用 filter_var

    filter_var('example.com', FILTER_VALIDATE_URL))
    

    不要在不需要is的地方使用正则表达式

        2
  •  1
  •   Marcelo Cantos    14 年前

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

        3
  •  1
  •   Barry Simpson    14 年前

    至于你的正则表达式,第一个周期需要像这样逃逸

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