【发布时间】:2014-04-15 03:55:43
【问题描述】:
我正在尝试使用 MDN 提供的文档开发 Firefox 插件。在示例 HTML 页面上测试时,我的正则表达式运行良好。但是,在开发附加组件时会出现问题。以下是我的代码,以名称 my-scripts.js 保存。
$("body:first").each(function(){
// Create a REGEX Expression to detetc a phone number
var regex =/\+\d{0,3}[-.\s]?\(?\d?\)?[-.\s]?\s?\d{1,4}[-.\s]?\d{1,9}[-.\s]?\d{5}/g;
var text = $(this).html();
text = text.replace(regex, "<a href=\"javascript:;\">$&</a>");
$("body:first").html(text);
});
以下是名为 main.js 的主要 Javascript 文件。
var pageMod = require("sdk/page-mod");
var { MatchPattern } = require("sdk/util/match-pattern");
var pattern = new MatchPattern("http://example.com/*");
var self = require("sdk/self");
pageMod.PageMod({
contentScriptFile: [self.data.url("jquery-1.11.0.js"), self.data.url("my-script.js")]
});
我的正则表达式很完美,但没有检测到给定网页上的数字
例子
+111111111111
+11 (1) 111 11 11111
+11 (1) 111 11-11111
+11 111 11 11111
+11 (1) 1111 111111111
+11111111111111
+11 1111 111111111
【问题讨论】:
-
请举例说明应该匹配的电话号码。
-
@MElliott:如果这些数字出现在网页上,应该会被检测到。
-
是的,必须是 main.js 文件中的内容。它在这里工作:jsfiddle.net/PtLc5 和这里:regex101.com/r/jJ6cO7
标签: jquery regex firefox-addon-sdk highlighting phone-number