我正在编写扩展程序以在Firefox中提供grep'ing功能。在我的工作场所,我们使用浏览器访问所有日志文件,grep功能非常适合过滤结果,仅查看特定的日志记录级别(INFO,WARN,ERROR)等。
设置扩展样板。
想知道我是否可以获得所需javascript的一些提示。在功能之后:
function grepPage(regex){
...
}
将正则表达式应用于firefox中加载的文本文件中的每一行,并将加载的文本文件更改为仅显示匹配的行。
这是我可以花费多年时间尝试锻炼的东西,当我确信会有更简单的方法来做这件事。
任何帮助都将受到高度赞赏。
干杯, 本
答案 0 :(得分:5)
有两种方式来看待这个。
一,你可以避免重新发明轮子: http://api.jquery.com/jQuery.grep/
二,你可以启动一个快速功能(这个例子不需要jQuery或其他库)。
function grepPage(regex) {
var lines = document.getElementByTagName('body').innerHTML.split("\n");
var matches = new Array();
// Check if the regex is surrounded by slashes by checking for a leading slash
if ( ! regex.match(/^\//) ) { regex = '/' + regex + '/'; }
for (var i = 0; i < lines.length; i++) {
if ( regex.test( lines[i] ) ) { matches.push(lines[i]); }
}
// Now the 'matches' array contains all your matches, do as you will with it.
}
警告,未经测试,但它应该有效。 :)