【问题标题】:Regular expression of host address?主机地址的正则表达式?
【发布时间】:2011-04-13 04:48:18
【问题描述】:

我想要一个用于 javascript 的正则表达式来验证主机地址,例如

http://192.168.10.10:8089/
and
www.abc.com
and 
www.abc.com.aa

【问题讨论】:

  • 这对你很好,有问题吗?你试过regexlib.com吗?
  • @Lazarus: +1 我们有同样的想法

标签: javascript regex url


【解决方案1】:

你试过在Regular Expression Library寻找它吗?

【讨论】:

    【解决方案2】:

    这会将有效的数字 IP 地址放入 $1

    /(\bhttp:\/\/(?:\d{1,2}\.|1\d\d\.|2[0-4]\d\.|25[0-5]\.){3}(?:1?\d?\d|2[0-4]\d|25[0-5])\b(?::\d{1,5})?)/
    

    如果您不关心验证,可以使用\d{1,3}\。对于句号之前的数字,\d{1,3} 是最后一个。这将运行得更快。

    对于“www”网址,这会将网址放入$1

    /(www\.\w+\.\w{3}(?:\.\w{2})?)\b/
    

    我在这里使用文档:

    https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions

    【讨论】:

      【解决方案3】:

      这段代码会分解url

      var fields = url.match( /(.*)[:/]{3}([^:/]+)[:]?([^/]*)([^?]*)[?]?(.*)/ );
      if(fields === null){
          throw new Error('bar url');
      }
      var protocol = fields[1];
      var host = fields[2];
      var port = fields[3];
      var path = fields[4];
      var query = fields[5];
      

      所以如果你进入 if,意味着 url 是一个糟糕的组合 url

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 2010-09-11
        • 1970-01-01
        • 2013-01-16
        • 2011-06-20
        • 1970-01-01
        相关资源
        最近更新 更多