不幸的是,在最新版本的Chrome中,否定网络过滤器不再起作用。我使用此过滤器是为了排除每个包含特定字符串的http调用。我在Chrome开发者工具论坛中提出了一个解决方案,但此刻没有人回答。
因此,我想知道是否存在一种使用正则表达式语法解决此问题的方法(例如,排除包含字符串'loadMess'的每个调用)。
Answers:
更新(2018):
这是对我以前的答案的更新,以澄清这两个错误已修复了一段时间。
取消或排除过滤功能现在可以按预期工作。这意味着您可以使用my.com/path
(显示匹配此请求的显示请求)或-my.com/path
(显示不匹配此请求的显示请求)过滤请求路径。
我的PR修复程序投入生产后,正则表达式解决方案也可以使用。这意味着您也可以使用/my.com.path/
和进行过滤/^((?!my.com/path).)*$/
,以达到相同的结果。
我在这里留下了旧答案以供参考,它还解释了否定查找解决方案。
预定义的否定过滤器可以工作,但是目前不允许您NOT
仅对Chrome稳定器中的名称进行过滤CONTAINS
。这是Chrome Canary中已修复的错误。
将更改推送到Chrome稳定后,您应该能够loadMess
只过滤该名称,然后-loadMess
过滤出该名称,然后保留其余名称,就像以前一样。
^((?!YOUR_STRING).)*$
^((?!loadMess).)*$
^
-字符串开始
(?!loadMess)
-负前瞻(在此光标处,不匹配下一位,不捕获)
.
-匹配任何字符(换行符除外)
()*
-先前组中的0个或更多
$
-字符串结尾我发现在Network面板中DevTools如何处理Regex实际上存在一个错误。这意味着上述解决方法即使有效,也无法使用。
“网络”面板过滤“名称”和“路径”(从源代码中发现),但是它会执行两个经过“或”运算的测试。在上述情况下,如果您loadMess
在“名称”中,但在“路径”中(例如,没有域或目录),则两者都将匹配。要澄清的是true || false === true
,这意味着只有loadMess
在“名称”和“路径”中都找到它时,它才会过滤掉。
-stringToAvoid
似乎起作用,并且我将使用它
在这里回答-最新的Chrome 58.0.3029.110(正式版本)(64位) https://stackoverflow.com/a/27770139/4772631