web-dev-qa-db-fra.com

Outil de développement Chrome: un moyen d'exclure chaque appel contenant une chaîne avec regex?

malheureusement, dans les dernières versions de Chrome, le filtre réseau négatif ne fonctionne plus ... J'ai utilisé ce filtre pour exclure chaque appel http contenant une chaîne particulière. J'ai demandé une solution dans le forum de l'outil de développement Chrome, mais pour le moment personne n'a répondu.

J'aimerais donc savoir s'il existe un moyen de résoudre ce problème (et d'exclure par exemple chaque appel contenant la chaîne 'loadMess') avec la syntaxe regex.

Merci beaucoup

36
suikoy

Mise à jour (2018):

Ceci est une mise à jour de mon ancienne réponse pour préciser que les deux bogues ont été corrigés depuis un certain temps.

  1. Le filtrage de négation ou d'exclusion fonctionne comme prévu maintenant. Cela signifie que vous pouvez filtrer les chemins de requête avec my.com/path (afficher les demandes correspondant à cela) ou -my.com/path (afficher les demandes ne correspondant pas à cela). 

  2. La solution regex fonctionne également après la mise en production de mon correctif PR. Cela signifie que vous pouvez également filtrer avec /my.com.path/ et /^((?!my.com/path).)*$/, ce qui donnera le même résultat. 

J'ai laissé l'ancienne réponse ici pour référence, et cela explique également la solution de recherche négative.


Les filtres négatifs prédéfinis fonctionnent, mais ils ne vous permettent pas actuellement de faire des filtres NOT sur les noms dans Chrome stable, uniquement CONTAINS. Ceci est un bug qui a été corrigé dans Chrome Canary. 

Une fois la modification appliquée à Chrome stable, vous devriez pouvoir utiliser loadMess pour filtrer uniquement ce nom, et -loadMess pour filtrer ce nom et laisser le reste, comme auparavant.

Negative Filter

Solution de contournement: expression régulière pour faire correspondre une chaîne ne contenant pas de chaîne

^((?!YOUR_STRING).)*$

Exemple:

^((?!loadMess).)*$

Explication:

  • ^ - Début de chaîne

  • (?!loadMess) - Lookahead négatif (à ce curseur, ne correspond pas au bit suivant, sans capturer)

  • . - Correspond à n'importe quel caractère (sauf les sauts de ligne)

  • ()* - 0 ou plus du groupe précédent

  • $ - Fin de chaîne

Mise à jour (2016):

J'ai découvert qu'il y avait en fait un problème avec la manière dont DevTools gère Regex dans le panneau Réseau. Cela signifie que la solution de contournement ci-dessus ne fonctionne pas, même si elle est valide. 

Le panneau Réseau filtre sur Nom et Chemin (comme l’a découvert le code source), mais il effectue deux tests en mode OR. Dans le cas ci-dessus, si vous avez loadMess dans le nom, mais pas dans le chemin (par exemple, ni le domaine ni le répertoire), cela va correspondre. Pour clarifier, true || false === true, ce qui signifie qu'il filtrera uniquement loadMess si elle est trouvée à la fois dans le nom et le chemin. 

J'ai créé un problème dans Chromium et, par la suite, j'ai passé en revue un correctif . Cela a ensuite été fusionné .

73
Gideon Pyzer

Ceci est répondu ici - pour le dernier Chrome 58.0.3029.110 (Version officielle) (64 bits) https://stackoverflow.com/a/27770139/4772631

Exemple: si je veux exclure tous les gifs, il suffit de taper -gif Here is a short example

22
Johnny C

Chrome broswer dev tools ne supporte pas très bien le filtre regrex.
Lorsque je veux masquer certaines demandes, cela ne fonctionne pas comme indiqué ci-dessus. Mais vous pouvez utiliser -hide1-hide2 pour masquer la demande souhaitée.
Laissez juste un espace entre les conditions, et ceci ne correspond pas au regrex, je suppose qu'il peut utiliser une correspondance de chaîne autre que le principe de regrex

3
Marx Wolf

Sur la dernière version chromée (62), vous devez utiliser:

-mime-type:image/gif
0
Mepps