RegEx匹配URL包含/ wp-content /

时间:2014-02-19 09:59:49

标签: javascript regex wordpress

我需要检查包含/ wp-content /的锚路径。

例如,<a href="http://domain.com/wp-content/...">Link1</a>

在这种情况下,RegExp必须匹配模式与url并返回数组

中的字符串

['http://domain.com', 'domain.com', 'http://domain.com/wp-content/', '']

在我的代码中我使用了这个,但是我做错了

$('a').live('click', function(e) {
     var host = thisClick.attr('href'),
         pattern = /(?:https?:\/\/)?(?:www\.)?(.*?)?(\/wp-content\/)?\//,
         matchReg = host.match(pattern);
});

上线代码有什么问题?

1 个答案:

答案 0 :(得分:2)

查看应用正则表达式时会发生什么:

  1. 第一个字符<h中的(?:https?:\/\/)?不匹配。继续前进。
  2. w中的(?:www\.)?不匹配,继续
  3. .
  4. 中的(.*?)?匹配
  5. 只要与//wp-content/
  6. 不匹配,量词就会继续
  7. 您最终获得<a href="http:/匹配。
  8. 你不能使所有东西都是可选的,或者没有任何锚,正则表达式可以用来到达URL的开头。如果您尝试始终匹配<a>代码中的内容,请尝试:

    /href="(((?:https?:\/\/)?(?:www\.)?(.*?)?)\/wp-content\//
    
    • 非可选/wp-content/,这是您的标准。
    • wp-content/
    • 之后没有其他正斜杠
    • 第一组将捕获http://domain.com/wp-content/,第二组http://domain.com,第三组domain.com
    • 这里有趣的演示:http://regex101.com/r/lF5qO7