当我使用以下代码
时var pageMod = require("sdk/page-mod");
pageMod.PageMod({
include: "http://www.page.com/user/*",
contentScript: 'window.alert("user");'
});
我得到警觉。但我想替换" http://www。"部分所以我试过了:
*://*.page.com/user/*
*://page.com/user/*
*.page.com/user/*
这些都不适合我。 developer.mozilla.org中的示例表明至少其中一个应该可以工作。这有什么问题?
答案 0 :(得分:2)
我以前遇到过这个问题,你不能在模式中使用超过1 *
(通配符)。
您有2个选项
["http://www.page.com/user/*", "https://www.page.com/user/*"]
以下是尝试*://*.page.com/user/*
使用以下RegEx:.+:\/\/(.+\.)?page\.com\/user\/.*
以下是它的工作原理(如果您不了解RegEx,我建议您学习它):
.+ # Any character 1+ times - Selects the Protocol (http, https, ftp)
:\/\/ # :// After Protocol (/ have to be escaped using \/)
(.+\.)? # (Optional) Letters followed by a . (dot) - (www.)
page # Website Name - (page)
\.com # .com - (Top-Level Domain)
\/user\/ # Folder /user/ (/ have to be escaped using \/)
.* # Any character 0 or more times - (Any folders / files after the /user/ folder)
如果你还不了解RegEx,这是一个学习RegEx的好网站:RegexOne
因此,您的完整include
将是:
include: /.+:\/\/(.+\.)?page\.com\/user\/.*/,
注意,在JavaScript中,您可以通过在/
s
以下是RegEx工作的Live Demo