使用javascript在大型文档中查找正则表达式匹配的快速方法?

时间:2010-03-02 17:01:14

标签: javascript regex search text

我需要在HTML文档中搜索注册(电子邮件,电话号码等)和文字。需要突出显示匹配并使其成为可锚定的,以便生成链接以跳转到匹配的位置。因此,它不仅需要使用需要进行替换的模式来查找匹配,还要添加正确的html代码。

我目前正在使用jquery,但我对速度不太满意。在1.5mb文件中,匹配2个正则表达式大约需要5秒钟,当我添加更多搜索条件时,它会增加。

有没有人知道使用javascript在大型文档中查找正则表达式匹配的快速方法?

1 个答案:

答案 0 :(得分:1)

你说你“正在使用jQuery”,但你没有说明如何。您是否尝试过“突出显示”插件(或者,听起来像是您需要的,推导出一个)?我用过这个:http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html对我来说似乎并不慢。同样,你必须努力使它添加你需要的标记,但这应该很清楚 - 它不是很大。

看起来你想要为性能做的就是把你的正则表达式合并到一个“令牌语法”中。换句话说,您不希望从头开始在整个文档中单独查找每个正则表达式。相反,你想要使用匹配每个可能目标的正则表达式(当然每个目标一个),并且每次找到一个你用任何适当的替换它。这样你就可以只对文件进行一次传递,无论它有多大,无论你需要多少种模式。

编辑 Burkard先生的插件不允许您使用正则表达式进行搜索;它在内部使用“indexOf”。 HMM。