我需要在用户键入时搜索文本,但它可能是数百或数千页,我怎样才能有效地做到这一点

I need to search text as a user types, but it can potentially be hundreds or thousands of pages, how can I do this efficiently

本文关键字:千页 这一点 有效地 用户 文本 搜索      更新时间:2023-09-26

我正在javascript中构建一个文本输入字段。但它更像是一个文本编辑器,可能包含长达数百页的巨大文档。我需要用户能够转到此文本中的任何位置,并进行更改并突出显示与一组特定正则表达式匹配的术语。目前这是我所拥有的:

var regexes = {
    thing_A: /'>(.*?)(?:(?!('s|$)).)*/,
    thing_B: /'#(.*?)(?:(?!('s|$)).)*/,
    thing_C: /@(.*?)(?:(?!('s|$)).)*/,
    whitespace: /'s+/,
    other: /'S+/,
};

我有在按键上运行的代码。它检查键"32",即空格键。当按空格键时,它会加入正则表达式并搜索文档。这对于少量文本效果很好,但对于大量文本来说会非常费力。我可能只检查最后一段,但如果有人回到文本中间并更改某些内容,我也需要跟踪它。

有没有更好的方法?

你试过这个吗?

var regexes = {
    thing_X: /[>#@](.*?)(?:(?!('s|$)).)*/,
    whitespace: /'s+/,
    other: /'S+/,
};