URL前面的双管道 - 正则表达式?

时间:2017-05-24 04:39:12

标签: javascript regex http url adblock

查看URL listings for adblockers并查看URL前面带有双重管道的条目:

||akamai.net^*.247realmedia.com/$third-party

有谁知道这些双管是指什么?感谢

2 个答案:

答案 0 :(得分:4)

这不是RegEx,而是AdBlock脚本如何使用它。

引自https://adblockplus.org/en/filters,"匹配地址的开头/结尾"节

  

有时候想阻止http://example.com/banner.gif以及https://example.com/banner.gifhttp://www.example.com/banner.gif。这可以通过在过滤器前面放置两个管道符号来实现,这样可以确保过滤器在域名的开头匹配:||example.com/banner.gif将阻止所有这些地址,同时不阻塞http://badexample.com/banner.gif或{{1 (需要Adblock Plus 1.1或更高版本)。

从上面可以清楚地看到,两个管道http://gooddomain.example/analyze?http://example.com/banner.gif用于匹配域的开头。

答案 1 :(得分:0)

如果其中一种情况属实,JS中的双管道仅评估为true。它是一个后备检查条件,以确保变量/表达式不会被定义,并且不会破坏代码。像

var result = a || 'not found';

因此,如果声明var aresult将等于a,否则它将等于'未找到'。

同样,在您的列表中,广告拦截器会检查每种可能性,例如

ak1.imgaft.com^$third-party
||akamai.net^*.247realmedia.com/$third-party