如何使用正则表达式排除单词?

时间:2018-09-03 19:06:14

标签: javascript regex pattern-matching firefox-addon webrequest

我尝试下面的代码,目标是使用自己的firefox插件阻止第三方的所有图像

因此,例如: 如果打开 www.test.com 页面,则表示我同意查看活动域( www.test.com )中的所有图像,但我想屏蔽所有其他图片 www.boring-ads.com,www.iamthebest.net,...

var MyPattern= /^((?!goodimg\.net).)*$/ig;

function cancel(requestDetails) {
   //console.log("Canceling: " + requestDetails.url);
   return {cancel: true};
}

browser.webRequest.onBeforeRequest.addListener(
   cancel,
   {urls: [MyPattern], types: ["image"]},
   ["blocking"]
);

goodimg.net 中的所有图像均已加载,但已来自其他域:(((

为什么? ...使用正则表达式无法排除字符串?

1 个答案:

答案 0 :(得分:0)

Firefox(或Chrome)不使用RegEx来检查网址, 请阅读Match_patterns 您可以发送模式匹配项:

/^(\*|http|https|ws|wss|file|ftp):\/\/(\*|(?:\*\.)?(?:[^\/*]+))?\/(.*)$/

matchPatternToRegExp

您可以在<all_urls>内使用cancel和url