【问题标题】:How to write a Reg to match with the URLs in Javascript?如何编写 Reg 以匹配 Javascript 中的 URL?
【发布时间】:2011-11-06 09:37:06
【问题描述】:

我有一个这样的网址列表:

http://www.mylocal.com
http://v1.mylocal.com
http://v2.mylocal.com
http://www.mylocal2.com
http://www.mylocal3.com

我想写一个 JS,如果我将搜索字符串定义为 "*.mylocal.com" ,那么它将返回 www.mylocal.com v1.mylocal.com 和 v2.myloca.com。如果搜索字符串是“www.local.com”,那么它将只返回 www.mylocal.com

我应该怎么写?

【问题讨论】:

  • 你的意思是搜索“www.local.com”还是“www.mylocal.com”

标签: javascript regex url


【解决方案1】:

如果您想搜索 URL 的每个部分,请执行此操作。 将 URL 拆分为 3 个搜索字符串,然后针对您的拆分搜索词运行每个匹配,这样您可以控制每个词的开头和结尾的匹配,如果您愿意,可以适当地对其余的词进行排序。

【讨论】:

    【解决方案2】:

    当给定主机字符串时,以下正则表达式将匹配您想要的:

    var reg = new RegExp('^https?://([^.]*' + host + ')');
    

    所以,例如:

    var host = '.mylocal.com';
    reg.exec('http://www.mylocal.com');  // ["http://www.mylocal.com", "www.mylocal.com"]
    reg.exec('http://v1.mylocal.com/path');   // ["http://v1.mylocal.com", "v1.mylocal.com"]
    reg.exec('https://v3.mylocal.com'); // ["https://v3.mylocal.com", "v3.mylocal.com"]
    
    host = 'www.mylocal.com';
    reg.exec('http://www.mylocal.com');  // ["http://www.mylocal.com", "www.mylocal.com"]
    reg.exec('http://v1.mylocal.com/path');   // null
    reg.exec('https://v3.mylocal.com'); // null
    

    您还可以参考以下帖子了解完整的 URI 正则表达式: Regular expression validation for URL in ASP.net.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多