Firefox加载项SDK模式匹配不起作用

Firefox加载项SDK模式匹配不起作用,firefox,firefox-addon,firefox-addon-sdk,Firefox,Firefox Addon,Firefox Addon Sdk,当我使用以下代码时 var pageMod = require("sdk/page-mod"); pageMod.PageMod({ include: "http://www.page.com/user/*", contentScript: 'window.alert("user");' }); 我很警惕。但我想替换“.”部分,所以我尝试: *://*.page.com/user/* *://page.com/user/* *.page.com/user/* 这些都不适合我。dev

当我使用以下代码时

var pageMod = require("sdk/page-mod");

pageMod.PageMod({
  include: "http://www.page.com/user/*",
  contentScript: 'window.alert("user");'
});
我很警惕。但我想替换“.”部分,所以我尝试:

*://*.page.com/user/*
*://page.com/user/*
*.page.com/user/*

这些都不适合我。developer.mozilla.org中的示例表明,至少其中一个应该可以工作。这些有什么问题?

我以前遇到过这个问题,在模式中不能使用超过1个
*
(通配符)

你有两个选择

  • 使用一系列网站,即
    [”http://www.page.com/user/*", "https://www.page.com/user/*“]
  • 使用(正则表达式)

下面是当您尝试
*://*.page.com/user/*

使用以下正则表达式:
+:\/\/(.+\)?page\.com\/user\/.*

下面是它的工作原理(如果你不知道正则表达式,我建议你学习它):

如果您还不了解正则表达式,这里是一个学习正则表达式的好网站:

因此,您的完整
包含将是:

include: /.+:\/\/(.+\.)?page\.com\/user\/.*/,
注意,在JavaScript中,通过在
/
s中丢失正则表达式来定义正则表达式


下面是正则表达式工作的一个例子

这是一个完美的答案。非常感谢,没问题!我有这个问题,我试着找出它的年龄,直到我发现你不能使用多个通配符。我没有意识到我可以使用RegEx(反正我也不知道如何使用它),所以我最终得到了一个长数组,其中包括
http
https
,每个数组都有或没有
www
,然后我不得不将
.com
.co.uk
include: /.+:\/\/(.+\.)?page\.com\/user\/.*/,