URL匹配firefox插件中的模式

Juz*_*Ali 3 pattern-matching firefox-addon firefox-addon-sdk

我无法弄清楚如何在Firefox插件中使用正则表达式匹配模式(使用附加组件生成器).我试过用match-pattern.

main.js看起来像这样:

var { MatchPattern } = require("match-pattern");
//Matching all urls containing moz and chrome
var pattern = new MatchPattern(/.*moz.*/);
var pattern2 = new MatchPattern(/.*chrome.*/);

var pageMod = require("page-mod");
var data = require("self").data;

pageMod.PageMod({
    include: [pattern, pattern2],
    contentScriptWhen: 'ready',
    contentScriptFile: [data.url('jquery-1.7.1.min.js'),data.url('jquery-ui.js')]

});
Run Code Online (Sandbox Code Playgroud)

但错误控制台显示此错误:

时间戳:3/19/2012 9:03:34 PM错误:发生异常.回溯(最近一次调用最后一次):文件"资源://jid0-m6oqvn6bm6wcoo89bddsxwddkou-at-jetpack/api-utils/lib/match-pattern.js",第87行,在MatchPattern_test中.thegexp.exec(urlStr)[0 ] == urlStr)TypeError:this.regexp.exec不是函数

我在这做错了什么?我可以在include数组中传递正则表达式匹配模式pageMod吗?任何帮助,将不胜感激.

Wla*_*ant 9

您不需要match-pattern直接使用该包,它在page-mod内部由模块使用.只需传递include参数中的正则表达式:

pageMod.PageMod({
    include: [/.*moz.*/, /.*chrome.*/],
    ...
});
Run Code Online (Sandbox Code Playgroud)

  • 是的,使用常规正则表达式对象/表达式的能力并不像在文档中那样广告. (2认同)