【发布时间】:2013-01-21 10:36:25
【问题描述】:
我正在编写一个 firefox 扩展,它使用 pagemod 和从 url 获取的正则表达式列表。
var pageMod = require("page-mod");
var Request = require("request").Request;
var hosters = Request({
url: "http://foo.bar/foo",
onComplete: function (response) {
console.log(response.json.urls);
var includeHosters = response.json.urls;
pageMod.PageMod({
include: includeHosters,
contentScriptWhen: "start",
contentScript: '',
onAttach: function onAttach(worker) {
// my code
}
});
}
}).get();
我的服务器的响应如下所示:
{
"urls": [
"/.*foo.*/",
"/.*bar.*/"
]
}
问题是正则表达式只有在它们没有被引号括起来时才有效。
这行得通:
include: [/.*foo.*/, /.*bar.*/],
这不起作用:
include: ["/.*foo.*/", "/.*bar.*/"],
Json 要求字符串用引号括起来。
在服务器端,我正在使用 PHP,并将我的正则表达式放在这样的数组中:
<?
$regexes = array(".*foo.*",".*bar.*");
echo json_encode(array("urls" => $regexes));
这会产生 firefox 无法使用的输出。
如何将我的正则表达式传递给 firefox 扩展?
也许我需要在扩展方面做一些 str_repl 的东西?
但是怎么做呢?我怎样才能正确地做到这一点?
【问题讨论】:
标签: php javascript regex json firefox